{-# 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) import qualified Data.ByteString.Char8 as S8 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