Add content to README

This commit is contained in:
patrick brisbin 2014-02-20 15:47:05 -05:00
parent 5c5f2eb613
commit 3c3c8f019d

View File

@ -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*