Merge pull request #292 from scan/a65a9bd5ff0c805bbd1f791caaab12b9bce03bc9

Added Tumblr OAuth
This commit is contained in:
Hiromi Ishii 2012-03-14 06:01:13 -07:00
commit 228770a191

View File

@ -5,6 +5,8 @@ module Yesod.Auth.OAuth
, oauthUrl
, authTwitter
, twitterUrl
, authTumblr
, tumblrUrl
, module Web.Authenticate.OAuth
) where
@ -101,5 +103,28 @@ authTwitter key secret = authOAuth
twitterUrl :: AuthRoute
twitterUrl = oauthUrl "twitter"
authTumblr :: YesodAuth m
=> ByteString -- ^ Consumer Key
-> ByteString -- ^ Consumer Secret
-> AuthPlugin m
authTumblr key secret = authOAuth
(newOAuth { oauthServerName = "tumblr"
, oauthRequestUri = "http://www.tumblr.com/oauth/request_token"
, oauthAccessTokenUri = "http://www.tumblr.com/oauth/access_token"
, oauthAuthorizeUri = "http://www.tumblr.com/oauth/authorize"
, oauthSignatureMethod = HMACSHA1
, oauthConsumerKey = key
, oauthConsumerSecret = secret
, oauthVersion = OAuth10a
})
extractCreds
where
extractCreds (Credential dic) = do
let crId = decodeUtf8With lenientDecode $ fromJust $ lookup "name" dic
return $ Creds "tumblr" crId $ map (bsToText *** bsToText ) dic
tumblrUrl :: AuthRoute
tumblrUrl = oauthUrl "tumblr"
bsToText :: ByteString -> Text
bsToText = decodeUtf8With lenientDecode