packages feed

haskell-admin-core-1.0.0.0: src/Admin/Server/Middlewares.hs

{-# LANGUAGE OverloadedStrings, FlexibleContexts #-}

module Admin.Server.Middlewares
  ( middlewares
  ) where

import Data.ByteString.Char8 (ByteString)
import Network.Wai (Middleware)
import Network.Wai.Middleware.BearerTokenAuth
import Network.Wai.Middleware.Cors

-- | Middlewares used in Haskell Admin
middlewares :: [ByteString] -> Middleware
middlewares tokens = allowCors . tokenListAuth tokens

allowCors :: Middleware
allowCors = cors (const $ Just policy)

policy :: CorsResourcePolicy
policy =
  simpleCorsResourcePolicy
    {corsRequestHeaders = ["Authorization", "Content-Type"]}