{-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-} module Yesod.Auth.OpenId ( authOpenId , forwardUrl ) where #include "qq.h" import Yesod.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.Cassius (cassius) import Text.Blaze (toHtml) import Control.Monad.Trans.Class (lift) import Data.Text (Text) import qualified Yesod.Auth.Message as Msg 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 addCassius [QQ(cassius)|##{ident} background: #fff url(http://www.myopenid.com/static/openid-icon-small.gif) no-repeat scroll 0pt 50%; padding-left: 18px; |] [QQ(whamlet)|