| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Network.Globus.Auth
Synopsis
- newtype State = State Text
- authorizationUrl :: Token 'ClientId -> Uri 'Redirect -> NonEmpty Scope -> State -> Uri 'Authorization
- fetchAccessTokens :: MonadIO m => Token 'ClientId -> Token 'ClientSecret -> Uri 'Redirect -> Token 'Exchange -> m (NonEmpty TokenItem)
- redirectUri :: QueryParam param => Uri 'Redirect -> param
- newtype TokenResponse = TokenResponse (NonEmpty TokenItem)
- data TokenItem = TokenItem {
- scope :: Scopes
- access_token :: Token 'Access
- expires_in :: Int
- state :: State
- scopeToken :: Scope -> NonEmpty TokenItem -> Maybe (Token 'Access)
- fetchUserInfo :: MonadIO m => Token 'OpenId -> m UserInfoResponse
- identityAuth :: Token 'OpenId -> Option 'Https
- data UserInfoResponse = UserInfoResponse {}
- data UserInfo = UserInfo {
- sub :: Text
- last_authentication :: Int
- newtype UserEmail = UserEmail Text
- data UserProfile = UserProfile {}
Documentation
Opaque secret identifying the user. Validate on redirect
authorizationUrl :: Token 'ClientId -> Uri 'Redirect -> NonEmpty Scope -> State -> Uri 'Authorization Source #
The end user must visit this url
fetchAccessTokens :: MonadIO m => Token 'ClientId -> Token 'ClientSecret -> Uri 'Redirect -> Token 'Exchange -> m (NonEmpty TokenItem) Source #
redirectUri :: QueryParam param => Uri 'Redirect -> param Source #
newtype TokenResponse Source #
fetchAccessTokens returns a non-empty list matching the scopes
Constructors
| TokenResponse (NonEmpty TokenItem) |
Instances
| Show TokenResponse Source # | |
Defined in Network.Globus.Auth Methods showsPrec :: Int -> TokenResponse -> ShowS # show :: TokenResponse -> String # showList :: [TokenResponse] -> ShowS # | |
| FromJSON TokenResponse Source # | |
Defined in Network.Globus.Auth Methods parseJSON :: Value -> Parser TokenResponse # parseJSONList :: Value -> Parser [TokenResponse] # | |
Constructors
| TokenItem | |
Fields
| |
Instances
fetchUserInfo :: MonadIO m => Token 'OpenId -> m UserInfoResponse Source #
You MUST include the OpenId Scope for this to work
data UserInfoResponse Source #
Constructors
| UserInfoResponse | |
Instances
| FromJSON UserInfoResponse Source # | |
Defined in Network.Globus.Auth Methods parseJSON :: Value -> Parser UserInfoResponse # parseJSONList :: Value -> Parser [UserInfoResponse] # | |
Constructors
| UserInfo | |
Fields
| |
Instances
| Generic UserInfo Source # | |||||
Defined in Network.Globus.Auth Associated Types
| |||||
| Show UserInfo Source # | |||||
| FromJSON UserInfo Source # | |||||
Defined in Network.Globus.Auth | |||||
| type Rep UserInfo Source # | |||||
Defined in Network.Globus.Auth type Rep UserInfo = D1 ('MetaData "UserInfo" "Network.Globus.Auth" "globus-0.1.3-inplace" 'False) (C1 ('MetaCons "UserInfo" 'PrefixI 'True) (S1 ('MetaSel ('Just "sub") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text) :*: S1 ('MetaSel ('Just "last_authentication") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Int))) | |||||
data UserProfile Source #
Constructors
| UserProfile | |
Fields | |
Instances
| Generic UserProfile Source # | |||||
Defined in Network.Globus.Auth Associated Types
| |||||
| Show UserProfile Source # | |||||
Defined in Network.Globus.Auth Methods showsPrec :: Int -> UserProfile -> ShowS # show :: UserProfile -> String # showList :: [UserProfile] -> ShowS # | |||||
| FromJSON UserProfile Source # | |||||
Defined in Network.Globus.Auth | |||||
| type Rep UserProfile Source # | |||||
Defined in Network.Globus.Auth type Rep UserProfile = D1 ('MetaData "UserProfile" "Network.Globus.Auth" "globus-0.1.3-inplace" 'False) (C1 ('MetaCons "UserProfile" 'PrefixI 'True) ((S1 ('MetaSel ('Just "name") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text) :*: S1 ('MetaSel ('Just "organization") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text)) :*: (S1 ('MetaSel ('Just "preferred_username") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text) :*: (S1 ('MetaSel ('Just "identity_provider") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text) :*: S1 ('MetaSel ('Just "identity_provider_display_name") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text))))) | |||||