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 #-}
|
{-# LANGUAGE OverloadedStrings #-}
|
||||||
module Yesod.Auth.OpenId
|
module Yesod.Auth.OpenId
|
||||||
( authOpenId
|
( authOpenId
|
||||||
|
, authOpenIdExtended
|
||||||
, forwardUrl
|
, forwardUrl
|
||||||
) where
|
) where
|
||||||
|
|
||||||
@ -26,7 +27,10 @@ forwardUrl :: AuthRoute
|
|||||||
forwardUrl = PluginR "openid" ["forward"]
|
forwardUrl = PluginR "openid" ["forward"]
|
||||||
|
|
||||||
authOpenId :: YesodAuth m => AuthPlugin m
|
authOpenId :: YesodAuth m => AuthPlugin m
|
||||||
authOpenId =
|
authOpenId = authOpenIdExtended []
|
||||||
|
|
||||||
|
authOpenIdExtended :: YesodAuth m => [(Text, Text)] -> AuthPlugin m
|
||||||
|
authOpenIdExtended extensionFields =
|
||||||
AuthPlugin "openid" dispatch login
|
AuthPlugin "openid" dispatch login
|
||||||
where
|
where
|
||||||
complete = PluginR "openid" ["complete"]
|
complete = PluginR "openid" ["complete"]
|
||||||
@ -57,7 +61,7 @@ authOpenId =
|
|||||||
render <- getUrlRender
|
render <- getUrlRender
|
||||||
toMaster <- getRouteToMaster
|
toMaster <- getRouteToMaster
|
||||||
let complete' = render $ toMaster complete
|
let complete' = render $ toMaster complete
|
||||||
res <- runAttemptT $ OpenId.getForwardUrl oid complete' Nothing []
|
res <- runAttemptT $ OpenId.getForwardUrl oid complete' Nothing extensionFields
|
||||||
attempt
|
attempt
|
||||||
(\err -> do
|
(\err -> do
|
||||||
setMessage $ toHtml $ show err
|
setMessage $ toHtml $ show err
|
||||||
@ -87,5 +91,5 @@ completeHelper gets' = do
|
|||||||
setMessage $ toHtml $ show err
|
setMessage $ toHtml $ show err
|
||||||
redirect RedirectTemporary $ toMaster LoginR
|
redirect RedirectTemporary $ toMaster LoginR
|
||||||
let onSuccess (OpenId.Identifier ident, _) =
|
let onSuccess (OpenId.Identifier ident, _) =
|
||||||
setCreds True $ Creds "openid" ident []
|
setCreds True $ Creds "openid" ident gets'
|
||||||
attempt onFailure onSuccess res
|
attempt onFailure onSuccess res
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user