Safe Haskell | None |
---|---|
Language | Haskell2010 |
Network.OAuth.OAuth2
Description
A lightweight oauth2 Haskell binding. See Readme for more details
Synopsis
- data OAuth2 = OAuth2 {
- oauth2ClientId :: Text
- oauth2ClientSecret :: Text
- oauth2AuthorizeEndpoint :: URIRef Absolute
- oauth2TokenEndpoint :: URIRef Absolute
- oauth2RedirectUri :: URIRef Absolute
- data ClientAuthenticationMethod
- newtype RefreshToken = RefreshToken {
- rtoken :: Text
- newtype ExchangeToken = ExchangeToken {
- extoken :: Text
- newtype AccessToken = AccessToken {
- atoken :: Text
- newtype IdToken = IdToken {
- idtoken :: Text
- data OAuth2Token = OAuth2Token {
- accessToken :: AccessToken
- refreshToken :: Maybe RefreshToken
- expiresIn :: Maybe Int
- tokenType :: Maybe Text
- idToken :: Maybe IdToken
- type PostBody = [(ByteString, ByteString)]
- type QueryParams = [(ByteString, ByteString)]
- defaultRequestHeaders :: [(HeaderName, ByteString)]
- appendQueryParams :: [(ByteString, ByteString)] -> URIRef a -> URIRef a
- uriToRequest :: MonadThrow m => URI -> m Request
- hostLens :: Lens' Request ByteString
- portLens :: Lens' Request Int
- requestToUri :: Request -> URI
- authorizationUrl :: OAuth2 -> URI
- authorizationUrlWithParams :: QueryParams -> OAuth2 -> URI
- module Network.OAuth.OAuth2.TokenRequest
- module Network.OAuth.OAuth2.HttpClient
Documentation
Query Parameter Representation
Constructors
OAuth2 | |
Fields
|
data ClientAuthenticationMethod Source #
https://www.rfc-editor.org/rfc/rfc6749#section-2.3 According to spec:
The client MUST NOT use more than one authentication method in each request.
Which means use Authorization header or Post body.
However, I found I have to include authentication in the header all the time in real world.
In other words, ClientSecretBasic
is always assured. ClientSecretPost
is optional.
Maybe consider an alternative implementation that boolean kind of data type is good enough.
Constructors
ClientSecretBasic | |
ClientSecretPost | |
ClientAssertionJwt |
Instances
Eq ClientAuthenticationMethod Source # | |
Defined in Network.OAuth.OAuth2.Internal Methods (==) :: ClientAuthenticationMethod -> ClientAuthenticationMethod -> Bool (/=) :: ClientAuthenticationMethod -> ClientAuthenticationMethod -> Bool |
newtype RefreshToken Source #
Constructors
RefreshToken | |
Fields
|
Instances
FromJSON RefreshToken Source # | |
Defined in Network.OAuth.OAuth2.Internal Methods parseJSON :: Value -> Parser RefreshToken parseJSONList :: Value -> Parser [RefreshToken] omittedField :: Maybe RefreshToken | |
ToJSON RefreshToken Source # | |
Defined in Network.OAuth.OAuth2.Internal Methods toJSON :: RefreshToken -> Value toEncoding :: RefreshToken -> Encoding toJSONList :: [RefreshToken] -> Value toEncodingList :: [RefreshToken] -> Encoding omitField :: RefreshToken -> Bool | |
Show RefreshToken Source # | |
Defined in Network.OAuth.OAuth2.Internal Methods showsPrec :: Int -> RefreshToken -> ShowS show :: RefreshToken -> String showList :: [RefreshToken] -> ShowS | |
Binary RefreshToken Source # | |
Defined in Network.OAuth.OAuth2.Internal | |
Eq RefreshToken Source # | |
Defined in Network.OAuth.OAuth2.Internal | |
ToQueryParam RefreshToken Source # | |
Defined in Network.OAuth2.Experiment.Types Methods toQueryParam :: RefreshToken -> Map Text Text Source # |
newtype ExchangeToken Source #
Authorization Code
Constructors
ExchangeToken | |
Fields
|
Instances
FromJSON ExchangeToken Source # | |
Defined in Network.OAuth.OAuth2.Internal Methods parseJSON :: Value -> Parser ExchangeToken parseJSONList :: Value -> Parser [ExchangeToken] omittedField :: Maybe ExchangeToken | |
ToJSON ExchangeToken Source # | |
Defined in Network.OAuth.OAuth2.Internal Methods toJSON :: ExchangeToken -> Value toEncoding :: ExchangeToken -> Encoding toJSONList :: [ExchangeToken] -> Value toEncodingList :: [ExchangeToken] -> Encoding omitField :: ExchangeToken -> Bool | |
Show ExchangeToken Source # | |
Defined in Network.OAuth.OAuth2.Internal Methods showsPrec :: Int -> ExchangeToken -> ShowS show :: ExchangeToken -> String showList :: [ExchangeToken] -> ShowS | |
ToQueryParam ExchangeToken Source # | |
Defined in Network.OAuth2.Experiment.Types Methods toQueryParam :: ExchangeToken -> Map Text Text Source # |
newtype AccessToken Source #
Constructors
AccessToken | |
Fields
|
Instances
FromJSON AccessToken Source # | |
Defined in Network.OAuth.OAuth2.Internal Methods parseJSON :: Value -> Parser AccessToken parseJSONList :: Value -> Parser [AccessToken] omittedField :: Maybe AccessToken | |
ToJSON AccessToken Source # | |
Defined in Network.OAuth.OAuth2.Internal Methods toJSON :: AccessToken -> Value toEncoding :: AccessToken -> Encoding toJSONList :: [AccessToken] -> Value toEncodingList :: [AccessToken] -> Encoding omitField :: AccessToken -> Bool | |
Show AccessToken Source # | |
Defined in Network.OAuth.OAuth2.Internal Methods showsPrec :: Int -> AccessToken -> ShowS show :: AccessToken -> String showList :: [AccessToken] -> ShowS | |
Binary AccessToken Source # | |
Defined in Network.OAuth.OAuth2.Internal | |
Eq AccessToken Source # | |
Defined in Network.OAuth.OAuth2.Internal |
Instances
FromJSON IdToken Source # | |
Defined in Network.OAuth.OAuth2.Internal Methods parseJSON :: Value -> Parser IdToken parseJSONList :: Value -> Parser [IdToken] omittedField :: Maybe IdToken | |
ToJSON IdToken Source # | |
Defined in Network.OAuth.OAuth2.Internal Methods toEncoding :: IdToken -> Encoding toJSONList :: [IdToken] -> Value toEncodingList :: [IdToken] -> Encoding | |
Show IdToken Source # | |
Binary IdToken Source # | |
Eq IdToken Source # | |
data OAuth2Token Source #
Constructors
OAuth2Token | |
Fields
|
Instances
FromJSON OAuth2Token Source # | Parse JSON data into | ||||
Defined in Network.OAuth.OAuth2.Internal Methods parseJSON :: Value -> Parser OAuth2Token parseJSONList :: Value -> Parser [OAuth2Token] omittedField :: Maybe OAuth2Token | |||||
ToJSON OAuth2Token Source # | |||||
Defined in Network.OAuth.OAuth2.Internal Methods toJSON :: OAuth2Token -> Value toEncoding :: OAuth2Token -> Encoding toJSONList :: [OAuth2Token] -> Value toEncodingList :: [OAuth2Token] -> Encoding omitField :: OAuth2Token -> Bool | |||||
Generic OAuth2Token Source # | |||||
Defined in Network.OAuth.OAuth2.Internal Associated Types
| |||||
Show OAuth2Token Source # | |||||
Defined in Network.OAuth.OAuth2.Internal Methods showsPrec :: Int -> OAuth2Token -> ShowS show :: OAuth2Token -> String showList :: [OAuth2Token] -> ShowS | |||||
Binary OAuth2Token Source # | |||||
Defined in Network.OAuth.OAuth2.Internal | |||||
Eq OAuth2Token Source # | |||||
Defined in Network.OAuth.OAuth2.Internal | |||||
type Rep OAuth2Token Source # | |||||
Defined in Network.OAuth.OAuth2.Internal type Rep OAuth2Token = D1 ('MetaData "OAuth2Token" "Network.OAuth.OAuth2.Internal" "hoauth2-2.14.0-1srFxlSx183Bt7IllRi4kt" 'False) (C1 ('MetaCons "OAuth2Token" 'PrefixI 'True) ((S1 ('MetaSel ('Just "accessToken") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 AccessToken) :*: S1 ('MetaSel ('Just "refreshToken") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe RefreshToken))) :*: (S1 ('MetaSel ('Just "expiresIn") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Int)) :*: (S1 ('MetaSel ('Just "tokenType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)) :*: S1 ('MetaSel ('Just "idToken") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe IdToken)))))) |
type QueryParams = [(ByteString, ByteString)] Source #
Type sysnonym of request query params
defaultRequestHeaders :: [(HeaderName, ByteString)] Source #
appendQueryParams :: [(ByteString, ByteString)] -> URIRef a -> URIRef a Source #
uriToRequest :: MonadThrow m => URI -> m Request Source #
requestToUri :: Request -> URI Source #
Authorization Requset
authorizationUrl :: OAuth2 -> URI Source #
authorizationUrlWithParams :: QueryParams -> OAuth2 -> URI Source #
Prepare the authorization URL. Redirect to this URL asking for user interactive authentication.
Since: 2.6.0