From ea224733c0fc96571ffbe9e285d46fbd20bc31a4 Mon Sep 17 00:00:00 2001 From: Nick Partridge Date: Wed, 12 Oct 2011 09:21:22 +1000 Subject: [PATCH] Allows passing through a set of openid extension fields, and returns the full openid response params in credsExtra --- yesod-auth/Yesod/Auth/OpenId.hs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/yesod-auth/Yesod/Auth/OpenId.hs b/yesod-auth/Yesod/Auth/OpenId.hs index 4f650be4..38891278 100644 --- a/yesod-auth/Yesod/Auth/OpenId.hs +++ b/yesod-auth/Yesod/Auth/OpenId.hs @@ -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