Add back conduit 1.0 support #757
This commit is contained in:
parent
00c3a04dc4
commit
28c366a3b3
@ -53,9 +53,10 @@ import qualified Yesod.Auth.Message as Msg
|
|||||||
import Yesod.Core (HandlerSite, MonadHandler,
|
import Yesod.Core (HandlerSite, MonadHandler,
|
||||||
getRouteToParent, getUrlRender,
|
getRouteToParent, getUrlRender,
|
||||||
getYesod, invalidArgs, lift,
|
getYesod, invalidArgs, lift,
|
||||||
liftBase, lookupGetParam,
|
lookupGetParam,
|
||||||
lookupSession, notFound, redirect,
|
lookupSession, notFound, redirect,
|
||||||
setSession, whamlet, (.:))
|
setSession, whamlet, (.:),
|
||||||
|
TypedContent, HandlerT, liftIO)
|
||||||
|
|
||||||
pid :: Text
|
pid :: Text
|
||||||
pid = "googleemail2"
|
pid = "googleemail2"
|
||||||
@ -75,7 +76,7 @@ getCreateCsrfToken = do
|
|||||||
case mtoken of
|
case mtoken of
|
||||||
Just token -> return token
|
Just token -> return token
|
||||||
Nothing -> do
|
Nothing -> do
|
||||||
stdgen <- liftBase newStdGen
|
stdgen <- liftIO newStdGen
|
||||||
let token = T.pack $ fst $ randomString 10 stdgen
|
let token = T.pack $ fst $ randomString 10 stdgen
|
||||||
setSession csrfKey token
|
setSession csrfKey token
|
||||||
return token
|
return token
|
||||||
@ -111,6 +112,11 @@ authGoogleEmail clientID clientSecret =
|
|||||||
login tm = do
|
login tm = do
|
||||||
url <- getDest tm
|
url <- getDest tm
|
||||||
[whamlet|<a href=#{url}>_{Msg.LoginGoogle}|]
|
[whamlet|<a href=#{url}>_{Msg.LoginGoogle}|]
|
||||||
|
|
||||||
|
dispatch :: YesodAuth site
|
||||||
|
=> Text
|
||||||
|
-> [Text]
|
||||||
|
-> HandlerT Auth (HandlerT site IO) TypedContent
|
||||||
dispatch "GET" ["forward"] = do
|
dispatch "GET" ["forward"] = do
|
||||||
tm <- getRouteToParent
|
tm <- getRouteToParent
|
||||||
lift (getDest tm) >>= redirect
|
lift (getDest tm) >>= redirect
|
||||||
@ -130,7 +136,7 @@ authGoogleEmail clientID clientSecret =
|
|||||||
|
|
||||||
render <- getUrlRender
|
render <- getUrlRender
|
||||||
|
|
||||||
req' <- parseUrl "https://accounts.google.com/o/oauth2/token" -- FIXME don't hardcode, use: https://accounts.google.com/.well-known/openid-configuration
|
req' <- liftIO $ parseUrl "https://accounts.google.com/o/oauth2/token" -- FIXME don't hardcode, use: https://accounts.google.com/.well-known/openid-configuration
|
||||||
let req =
|
let req =
|
||||||
urlEncodedBody
|
urlEncodedBody
|
||||||
[ ("code", encodeUtf8 code)
|
[ ("code", encodeUtf8 code)
|
||||||
@ -152,7 +158,7 @@ authGoogleEmail clientID clientSecret =
|
|||||||
|
|
||||||
unless (tokenType == "Bearer") $ error $ "Unknown token type: " ++ show tokenType
|
unless (tokenType == "Bearer") $ error $ "Unknown token type: " ++ show tokenType
|
||||||
|
|
||||||
req2' <- parseUrl "https://www.googleapis.com/plus/v1/people/me"
|
req2' <- liftIO $ parseUrl "https://www.googleapis.com/plus/v1/people/me"
|
||||||
let req2 = req2'
|
let req2 = req2'
|
||||||
{ requestHeaders =
|
{ requestHeaders =
|
||||||
[ ("Authorization", encodeUtf8 $ "Bearer " `mappend` accessToken)
|
[ ("Authorization", encodeUtf8 $ "Bearer " `mappend` accessToken)
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
name: yesod-auth
|
name: yesod-auth
|
||||||
version: 1.3.1
|
version: 1.3.1.1
|
||||||
license: MIT
|
license: MIT
|
||||||
license-file: LICENSE
|
license-file: LICENSE
|
||||||
author: Michael Snoyman, Patrick Brisbin
|
author: Michael Snoyman, Patrick Brisbin
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user