我目前正在制作一个 Scotty API,但找不到任何 basicAuth 实现示例(Wai Middleware HttpAuth)。
具体来说,我想将基本身份验证标头(用户、密码)添加到我的一些端点(即以“admin”开头的端点)。我已经设置好了所有东西,但我似乎无法区分哪些端点需要身份验证,哪些不需要。我知道我需要使用这样的东西,但它使用 Yesod,我无法将它翻译成 Scotty。
到目前为止,我有这个:
routes :: (App r m) => ScottyT LText m ()
routes = do
-- middlewares
middleware $ cors $ const $ Just simpleCorsResourcePolicy
{ corsRequestHeaders = ["Authorization", "Content-Type"]
, corsMethods = "PUT":"DELETE":simpleMethods
}
middleware $ basicAuth
(\u p -> return $ u == "username" && p == "password")
"My Realm"
-- errors
defaultHandler $ \str -> do
status status500
json str
-- feature routes
ItemController.routes
ItemController.adminRoutes
-- health
get "/api/health" $
json True
但它为我的所有请求添加了身份验证。我只需要其中一些。
太感谢了!