Allows passing through a set of openid extension fields, and returns the full openid response params in credsExtra
This commit is contained in:
parent
2ffb5007fe
commit
ea224733c0
@ -3,6 +3,7 @@
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
module Yesod.Auth.OpenId
|
||||
( authOpenId
|
||||
, authOpenIdExtended
|
||||
, forwardUrl
|
||||
) where
|
||||
|
||||
@ -26,7 +27,10 @@ forwardUrl :: AuthRoute
|
||||
forwardUrl = PluginR "openid" ["forward"]
|
||||
|
||||
authOpenId :: YesodAuth m => AuthPlugin m
|
||||
authOpenId =
|
||||
authOpenId = authOpenIdExtended []
|
||||
|
||||
authOpenIdExtended :: YesodAuth m => [(Text, Text)] -> AuthPlugin m
|
||||
authOpenIdExtended extensionFields =
|
||||
AuthPlugin "openid" dispatch login
|
||||
where
|
||||
complete = PluginR "openid" ["complete"]
|
||||
@ -57,7 +61,7 @@ authOpenId =
|
||||
render <- getUrlRender
|
||||
toMaster <- getRouteToMaster
|
||||
let complete' = render $ toMaster complete
|
||||
res <- runAttemptT $ OpenId.getForwardUrl oid complete' Nothing []
|
||||
res <- runAttemptT $ OpenId.getForwardUrl oid complete' Nothing extensionFields
|
||||
attempt
|
||||
(\err -> do
|
||||
setMessage $ toHtml $ show err
|
||||
@ -87,5 +91,5 @@ completeHelper gets' = do
|
||||
setMessage $ toHtml $ show err
|
||||
redirect RedirectTemporary $ toMaster LoginR
|
||||
let onSuccess (OpenId.Identifier ident, _) =
|
||||
setCreds True $ Creds "openid" ident []
|
||||
setCreds True $ Creds "openid" ident gets'
|
||||
attempt onFailure onSuccess res
|
||||
|
||||
Loading…
Reference in New Issue
Block a user