mirror of
https://github.com/freckle/yesod-auth-oauth2.git
synced 2026-04-20 18:04:14 +02:00
Expose custom widgets for google oauth
This commit is contained in:
parent
c3337b39ab
commit
c4d6a5d28d
@ -1,4 +1,5 @@
|
|||||||
{-# LANGUAGE OverloadedStrings #-}
|
{-# LANGUAGE OverloadedStrings #-}
|
||||||
|
{-# LANGUAGE QuasiQuotes #-}
|
||||||
-- |
|
-- |
|
||||||
--
|
--
|
||||||
-- OAuth2 plugin for http://www.google.com
|
-- OAuth2 plugin for http://www.google.com
|
||||||
@ -25,11 +26,14 @@
|
|||||||
--
|
--
|
||||||
module Yesod.Auth.OAuth2.Google
|
module Yesod.Auth.OAuth2.Google
|
||||||
( oauth2Google
|
( oauth2Google
|
||||||
|
, oauth2GoogleWidget
|
||||||
, oauth2GoogleScoped
|
, oauth2GoogleScoped
|
||||||
|
, oauth2GoogleScopedWidget
|
||||||
)
|
)
|
||||||
where
|
where
|
||||||
|
|
||||||
import Yesod.Auth.OAuth2.Prelude
|
import Yesod.Auth.OAuth2.Prelude
|
||||||
|
import Yesod.Core (WidgetFor, whamlet)
|
||||||
|
|
||||||
newtype User = User Text
|
newtype User = User Text
|
||||||
|
|
||||||
@ -48,9 +52,15 @@ defaultScopes = ["openid", "email"]
|
|||||||
oauth2Google :: YesodAuth m => Text -> Text -> AuthPlugin m
|
oauth2Google :: YesodAuth m => Text -> Text -> AuthPlugin m
|
||||||
oauth2Google = oauth2GoogleScoped defaultScopes
|
oauth2Google = oauth2GoogleScoped defaultScopes
|
||||||
|
|
||||||
|
oauth2GoogleWidget :: YesodAuth m => WidgetFor m () -> Text -> Text -> AuthPlugin m
|
||||||
|
oauth2GoogleWidget widget = oauth2GoogleScopedWidget widget defaultScopes
|
||||||
|
|
||||||
oauth2GoogleScoped :: YesodAuth m => [Text] -> Text -> Text -> AuthPlugin m
|
oauth2GoogleScoped :: YesodAuth m => [Text] -> Text -> Text -> AuthPlugin m
|
||||||
oauth2GoogleScoped scopes clientId clientSecret =
|
oauth2GoogleScoped = oauth2GoogleScopedWidget [whamlet|Login via #{pluginName}|]
|
||||||
authOAuth2 pluginName oauth2 $ \manager token -> do
|
|
||||||
|
oauth2GoogleScopedWidget :: YesodAuth m => WidgetFor m () -> [Text] -> Text -> Text -> AuthPlugin m
|
||||||
|
oauth2GoogleScopedWidget widget scopes clientId clientSecret =
|
||||||
|
authOAuth2Widget widget pluginName oauth2 $ \manager token -> do
|
||||||
(User userId, userResponse) <- authGetProfile
|
(User userId, userResponse) <- authGetProfile
|
||||||
pluginName
|
pluginName
|
||||||
manager
|
manager
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user