{-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-} 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 (toHtml) import Control.Monad.Trans.Class (lift) import Data.Text (Text) 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 <- lift newIdent y <- lift 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