-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Yesod Middleware for HTTP Basic Authentication -- @package yesod-auth-basic @version 0.1.0.2 -- | A Yesod middleware for -- -- Performs a single authentication lookup per request and uses the -- <<https://github.com/yesodweb/yesod/blob/7f775e1ddebaeb4b8509b512b6d4b539d96258bd/yesod-core/Yesod/Core/TypeCache.hs#L21 -- Yesod request-local caching>> mechanisms to store valid auth -- credentials found in the Authorization header. -- -- The recommended way to use this module is to override the -- maybeAuthId to defaultMaybeBasicAuthId and supply a -- lookup function. -- --
-- instance YesodAuth App where -- type AuthId App = Text -- getAuthId = return . Just . credsIdent -- maybeAuthId = defaultMaybeBasicAuthId checkCreds defaultAuthSettings -- where -- checkCreds = k s -> return $ (k == "user") -- && (s == "secret") ---- -- WWW-Authenticate challenges are currently not implemented. The current -- workaround is to override the error handler: -- --
-- instance Yesod App where -- errorHandler NotAuthenticated = selectRep $ -- provideRep $ do -- addHeader WWW-Authenticate $ T.concat -- [ "RedirectJSON realm="Realm", param="myurl.com"" ] -- -- send error response here -- ... -- errorHandler e = defaultErrorHandler e -- ... ---- -- Proper response status on failed authentication is not implemented. -- The current workaround is to override the Yesod typeclass -- isAuthorized function to handle required auth routes. e.g. -- --
-- instance Yesod App where -- isAuthorized SecureR _ = -- maybeAuthId >>= return . maybe AuthenticationRequired (const Authorized) -- isAuthorized _ _ = Authorized --module Yesod.Auth.Http.Basic -- | Retrieve the AuthId using Authorization header. -- -- If valid credentials are found and authorized the auth id is cached. -- -- TODO use more general type than Text to represent the auth id defaultMaybeBasicAuthId :: (MonadIO m, MonadThrow m, MonadBaseControl IO m) => CheckCreds -> AuthSettings -> HandlerT site m (Maybe Text) -- | Authentication Settings data AuthSettings authRealm :: AuthSettings -> Text -- | ready-to-go AuthSettings which can be used defaultAuthSettings :: AuthSettings instance Typeable CachedBasicAuthId