From c9d0fd57a2362c864a75225cd948ed5f4f21161b Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Tue, 5 Oct 2010 11:17:28 +0200 Subject: [PATCH] Unified OpenID 1 and 2 --- Yesod/Helpers/Auth2/OpenId.hs | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/Yesod/Helpers/Auth2/OpenId.hs b/Yesod/Helpers/Auth2/OpenId.hs index 1a2e0a4d..1af3196d 100644 --- a/Yesod/Helpers/Auth2/OpenId.hs +++ b/Yesod/Helpers/Auth2/OpenId.hs @@ -8,8 +8,6 @@ import Yesod import Yesod.Helpers.Auth2 import qualified Web.Authenticate.OpenId as OpenId import Control.Monad.Attempt -import qualified Web.Authenticate.OpenId2 as OpenId2 -import Control.Exception (toException) forwardUrl :: AuthRoute forwardUrl = PluginR "openid" ["forward"] @@ -18,8 +16,7 @@ authOpenId :: YesodAuth m => AuthPlugin m authOpenId = AuthPlugin "openid" dispatch login where - complete1 = PluginR "openid" ["complete1"] - complete2 = PluginR "openid" ["complete2"] + complete = PluginR "openid" ["complete"] name = "openid_identifier" login tm = do ident <- newIdent @@ -31,7 +28,7 @@ authOpenId = addBody [$hamlet| %form!method=get!action=@tm.forwardUrl@ %label!for=openid OpenID: $ - %input#$ident$!type=text!name=$name$ + %input#$ident$!type=text!name=$name$!value="http://" %input!type=submit!value="Login via OpenID" |] dispatch "GET" ["forward"] = do @@ -40,20 +37,11 @@ authOpenId = FormSuccess oid -> do render <- getUrlRender toMaster <- getRouteToMaster - let complete2' = render $ toMaster complete2 - res2 <- runAttemptT $ OpenId2.getForwardUrl oid complete2' - msg <- - case res2 of - Failure e -> return $ toException e - Success url -> redirectString RedirectTemporary url - let complete' = render $ toMaster complete1 + let complete' = render $ toMaster complete res <- runAttemptT $ OpenId.getForwardUrl oid complete' attempt (\err -> do - setMessage $ string $ unlines - [ show err - , show $ toException msg - ] + setMessage $ string $ show err redirect RedirectTemporary $ toMaster LoginR ) (redirectString RedirectTemporary) @@ -62,9 +50,7 @@ authOpenId = toMaster <- getRouteToMaster setMessage $ string "No OpenID identifier found" redirect RedirectTemporary $ toMaster LoginR - dispatch "GET" ["complete1"] = completeHelper OpenId.authenticate - dispatch "GET" ["complete2"] = - completeHelper (fmap OpenId.Identifier . OpenId2.authenticate) + dispatch "GET" ["complete"] = completeHelper OpenId.authenticate dispatch _ _ = notFound completeHelper