A ServerError that asks the client to authenticate via Basic Authentication, should be invoked by an application whenever appropriate. The argument is the realm.
Moduleservant-auth-server-0.4.9.0Haskell2010
Servant.Auth.Server.Internal.BasicAuth
- 1 class
- 2 values
- Packageservant-auth-server-0.4.9.0
- Exports4
- LanguageHaskell2010
- LicenceBSD-3-Clause
- SourceBasicAuth.hs
A type holding the configuration for Basic Authentication.
It is defined as a type family with no arguments, so that
it can be instantiated to whatever type you need to
authenticate your users (use type instance BasicAuthCfg = ...).
Note that the instantiation is application-wide, i.e. there can be only one instance. As a consequence, it should not be instantiated in a library.
Basic Authentication expects an element of type BasicAuthCfg
to be in the Context; that element is then passed automatically
to the instance of FromBasicAuthData together with the
authentication data obtained from the client.
If you do not need a configuration for Basic Authentication,
you can use just BasicAuthCfg = (), and recall to also
add () to the Context.
A basic but more interesting example is to take as BasicAuthCfg
a list of authorised username/password pairs:
deriving instance Eq BasicAuthData
type instance BasicAuthCfg = [BasicAuthData]
instance FromBasicAuthData User where
fromBasicAuthData authData authCfg =
if elem authData authCfg then ...Methods
fromBasicAuthData :: BasicAuthData -> BasicAuthCfg -> IO (AuthResult a)Whether the username exists and the password is correct. Note that, rather than passing a
Passto the function, we pass a function that checks anEncryptedPass. This is to make sure you don't accidentally do something untoward with the password, like store it.