{-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE CPP #-} module Yesod.Helpers.Auth.OpenId ( authOpenId , forwardUrl ) where import Yesod.Helpers.Auth import qualified Web.Authenticate.OpenId as OpenId import Control.Monad.Attempt import Yesod.Form import Yesod.Handler import Yesod.Widget import Yesod.Request import Text.Hamlet (hamlet) import Text.Cassius (cassius) import Text.Blaze (string) import Control.Monad.Trans.Class (lift) forwardUrl :: AuthRoute forwardUrl = PluginR "openid" ["forward"] authOpenId :: YesodAuth m => AuthPlugin m authOpenId = AuthPlugin "openid" dispatch login where complete = PluginR "openid" ["complete"] name = "openid_identifier" login tm = do ident <- newIdent y <- liftHandler getYesod addCassius #if GHC7 [cassius|##{ident} #else [$cassius|##{ident} #endif background: #fff url(http://www.myopenid.com/static/openid-icon-small.gif) no-repeat scroll 0pt 50%; padding-left: 18px; |] addHamlet #if GHC7 [hamlet| #else [$hamlet| #endif