mirror of
https://github.com/freckle/yesod-auth-oauth2.git
synced 2026-01-11 19:58:28 +01:00
Add content to README
This commit is contained in:
parent
5c5f2eb613
commit
3c3c8f019d
56
README.md
56
README.md
@ -0,0 +1,56 @@
|
||||
# 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*
|
||||
Loading…
Reference in New Issue
Block a user