yesod-auth-oauth2/README.md
2014-02-20 15:47:05 -05:00

57 lines
1.2 KiB
Markdown

# Yesod.Auth.OAuth2
OAuth2 `AuthPlugin`s for Yesod.
## Basic Usage
To use one of the supported providers:
```haskell
import Yesod.Auth
import Yesod.Auth.OAuth2.Learn
instance YesodAuth App where
-- ...
-- https://learn.thoughtbot.com
authPlugins _ = [oauth2Learn clientId clientSecret]
clientId :: Text
clientId = "..."
clientSecret :: Text
clientSecret = "..."
```
## Advanced Usage
To use any other provider:
```haskell
import Yesod.Auth
import Yesod.Auth.OAuth2
instance YesodAuth App where
-- ...
authPlugins _ = [myPlugin]
myPlugin :: AuthPlugin m
myPlugin = authOAuth2 "mysite"
(OAuth2
{ oauthClientId = "..."
, oauthClientSecret = "..."
, oauthOAuthorizeEndpoint = "https://mysite.com/oauth/authorize"
, oauthAccessTokenEndpoint = "https://mysite.com/oauth/token"
, oauthCallback = Nothing
})
makeCredentials
makeCredentials :: AccessToken -> IO (Creds m)
makeCredentials token = do
result <- authGetJSON token "https://mysite.com/api/me.json"
return $ -- Parse the JSON into (Creds m)
```
*If you write one of these, please consider opening a Pull Request*