-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Authentication methods for Haskell web applications.
--
-- OAuth authentication, e.g. Twitter.
@package authenticate-oauth
@version 1.1
module Web.Authenticate.OAuth
-- | Data type for OAuth client (consumer).
--
-- The constructor for this data type is not exposed. Instead, you should
-- use the def method or newOAuth function to retrieve a
-- default instance, and then use the records below to make
-- modifications. This approach allows us to add configuration options
-- without breaking backwards compatibility.
data OAuth
-- | The default value for this type.
def :: Default a => a
-- | Default value for OAuth datatype. You must specify at least
-- oauthServerName, URIs and Tokens.
newOAuth :: OAuth
-- | Service name (default: "")
oauthServerName :: OAuth -> String
-- | URI to request temporary credential (default: ""). You MUST
-- specify if you use getTemporaryCredential',
-- getTemporaryCredentialProxy or getTemporaryCredential;
-- otherwise you can just leave this empty.
oauthRequestUri :: OAuth -> String
-- | Uri to obtain access token (default: ""). You MUST specify if
-- you use getAcessToken or getAccessToken'; otherwise
-- you can just leave this empty.
oauthAccessTokenUri :: OAuth -> String
-- | Uri to authorize (default: ""). You MUST specify if you use
-- authorizeUrl or authorizeUrl'; otherwise you can just
-- leave this empty.
oauthAuthorizeUri :: OAuth -> String
-- | Signature Method (default: HMACSHA1)
oauthSignatureMethod :: OAuth -> SignMethod
-- | Consumer key (You MUST specify)
oauthConsumerKey :: OAuth -> ByteString
-- | Consumer Secret (You MUST specify)
oauthConsumerSecret :: OAuth -> ByteString
-- | Callback uri to redirect after authentication (default:
-- Nothing)
oauthCallback :: OAuth -> Maybe ByteString
-- | Optional authorization realm (default: Nothing)
oauthRealm :: OAuth -> Maybe ByteString
-- | OAuth spec version (default: OAuth10a)
oauthVersion :: OAuth -> OAuthVersion
data OAuthVersion
-- | OAuth protocol ver 1.0 (no oauth_verifier; differs from RFC 5849).
OAuth10 :: OAuthVersion
-- | OAuth protocol ver 1.0a. This corresponds to community's 1.0a spec and
-- RFC 5849.
OAuth10a :: OAuthVersion
-- | Data type for signature method.
data SignMethod
PLAINTEXT :: SignMethod
HMACSHA1 :: SignMethod
RSASHA1 :: PrivateKey -> SignMethod
-- | Data type for redential.
data Credential
Credential :: [(ByteString, ByteString)] -> Credential
unCredential :: Credential -> [(ByteString, ByteString)]
data OAuthException
OAuthException :: String -> OAuthException
-- | Convenient function to create Credential with OAuth Token and
-- Token Secret.
newCredential :: ByteString -> ByteString -> Credential
-- | Empty credential.
emptyCredential :: Credential
-- | Insert an oauth parameter into given Credential.
insert :: ByteString -> ByteString -> Credential -> Credential
-- | Remove an oauth parameter for key from given Credential.
delete :: ByteString -> Credential -> Credential
-- | Convenient method for inserting multiple parameters into credential.
inserts :: [(ByteString, ByteString)] -> Credential -> Credential
injectVerifier :: ByteString -> Credential -> Credential
-- | Add OAuth headers & sign to Request.
signOAuth :: ResourceIO m => OAuth -> Credential -> Request m -> ResourceT m (Request m)
genSign :: ResourceIO m => OAuth -> Credential -> Request m -> ResourceT m ByteString
-- | URL to obtain OAuth verifier.
authorizeUrl :: OAuth -> Credential -> String
-- | Convert OAuth and Credential to URL to authorize. This takes function
-- to choice parameter to pass to the server other than
-- oauth_callback or oauth_token.
authorizeUrl' :: (OAuth -> Credential -> SimpleQuery) -> OAuth -> Credential -> String
-- | Get Access token.
getAccessToken, getTokenCredential :: ResourceIO m => OAuth -> Credential -> Manager -> ResourceT m Credential
-- | Get temporary credential for requesting acces token.
getTemporaryCredential :: ResourceIO m => OAuth -> Manager -> ResourceT m Credential
-- | Get temporary credential for requesting access token with Scope
-- parameter.
getTemporaryCredentialWithScope :: ResourceIO m => ByteString -> OAuth -> Manager -> ResourceT m Credential
-- | Get Access token via the proxy.
getAccessTokenProxy, getTokenCredentialProxy :: ResourceIO m => Maybe Proxy -> OAuth -> Credential -> Manager -> ResourceT m Credential
-- | Get temporary credential for requesting access token via the proxy.
getTemporaryCredentialProxy :: ResourceIO m => Maybe Proxy -> OAuth -> Manager -> ResourceT m Credential
getAccessToken' :: ResourceIO m => (Request m -> Request m) -> OAuth -> Credential -> Manager -> ResourceT m Credential
getTemporaryCredential' :: ResourceIO m => (Request m -> Request m) -> OAuth -> Manager -> ResourceT m Credential
-- | Encode a string using the percent encoding method for OAuth.
paramEncode :: ByteString -> ByteString
addScope :: MonadIO m => ByteString -> Request m -> Request m
addMaybeProxy :: Maybe Proxy -> Request m -> Request m
instance Typeable OAuthVersion
instance Typeable SignMethod
instance Typeable OAuth
instance Typeable Credential
instance Typeable OAuthException
instance Eq PrivateKey
instance Ord PrivateKey
instance Read PrivateKey
instance Data PrivateKey
instance Typeable PrivateKey
instance Show OAuthVersion
instance Eq OAuthVersion
instance Ord OAuthVersion
instance Data OAuthVersion
instance Read OAuthVersion
instance Show SignMethod
instance Eq SignMethod
instance Ord SignMethod
instance Read SignMethod
instance Data SignMethod
instance Show OAuth
instance Eq OAuth
instance Ord OAuth
instance Read OAuth
instance Data OAuth
instance Show Credential
instance Eq Credential
instance Ord Credential
instance Read Credential
instance Data Credential
instance Show OAuthException
instance Eq OAuthException
instance Data OAuthException
instance Exception OAuthException
instance Default OAuth
-- | This Module provides interface for the instance of ResouceIO instead
-- of ResourceT. What this module do is just adding withManager or
-- runResourceT.
module Web.Authenticate.OAuth.IO
-- | Get Access token.
getAccessToken, getTokenCredential :: ResourceIO m => OAuth -> Credential -> m Credential
-- | Add OAuth headers & sign to Request
signOAuth :: ResourceIO m => OAuth -> Credential -> Request m -> m (Request m)
-- | Get temporary credential for requesting acces token.
getTemporaryCredential :: ResourceIO m => OAuth -> m Credential
-- | Get temporary credential for requesting access token with Scope
-- parameter.
getTemporaryCredentialWithScope :: ResourceIO m => ByteString -> OAuth -> m Credential
-- | Get temporary credential for requesting access token via the proxy.
getTemporaryCredentialProxy :: ResourceIO m => Maybe Proxy -> OAuth -> m Credential
getTemporaryCredential' :: ResourceIO m => (Request m -> Request m) -> OAuth -> m Credential
-- | Get Access token via the proxy.
getAccessTokenProxy, getTokenCredentialProxy :: ResourceIO m => Maybe Proxy -> OAuth -> Credential -> m Credential
getAccessToken' :: ResourceIO m => (Request m -> Request m) -> OAuth -> Credential -> m Credential
genSign :: ResourceIO m => OAuth -> Credential -> Request m -> m ByteString