yesod-auth-fb 1.1 → 1.2
raw patch · 3 files changed
+17/−26 lines, 3 filesdep +yesod-fb
Dependencies added: yesod-fb
Files
- src/Yesod/Auth/Facebook/ClientSide.hs +14/−24
- src/Yesod/Auth/Facebook/ServerSide.hs +1/−1
- yesod-auth-fb.cabal +2/−1
src/Yesod/Auth/Facebook/ClientSide.hs view
@@ -22,7 +22,6 @@ -- * Useful functions , serveChannelFile- , getFbCredentials , defaultFbInitOpts , getUserAccessToken @@ -53,6 +52,7 @@ import qualified Data.Time as TI import qualified Data.Time.Clock.POSIX as TI import qualified Facebook as FB+import qualified Yesod.Facebook as YF import qualified Yesod.Auth.Message as Msg -- import qualified Data.Conduit as C @@ -91,7 +91,7 @@ loginRoute = toMaster $ fbcsR ["login"] logoutRoute = toMaster $ LogoutR fbInitOpts = A.object $ map (uncurry (A..=)) fbInitOptsList- [whamlet|+ [whamlet|$newline never <div #fb-root> |] toWidgetBody [julius|@@ -211,13 +211,9 @@ -- | Type class that needs to be implemented in order to use -- 'authFacebookClientSide'. ----- Minimal complete definition: 'fbCredentials' and--- 'getFbChannelFile'. (We recommend implementing--- 'getFbLanguage' as well.)-class YesodAuth master => YesodAuthFbClientSide master where- -- | Facebook 'FB.Credentials' for your app.- fbCredentials :: master -> FB.Credentials-+-- Minimal complete definition: 'getFbChannelFile'. (We+-- recommend implementing 'getFbLanguage' as well.)+class (YesodAuth master, YF.YesodFacebook master) => YesodAuthFbClientSide master where -- | A route that serves Facebook's channel file in the /same/ -- /subdomain/ as the current request's subdomain. --@@ -304,7 +300,7 @@ -- | Default implementation for 'getFbInitOpts'. Defines: ----- [@appId@] Using 'getFbCredentials'.+-- [@appId@] Using 'YF.getFbCredentials'. -- -- [@channelUrl@] Using 'getFbChannelFile'. --@@ -316,7 +312,7 @@ GHandler sub master [(Text, A.Value)] defaultFbInitOpts = do ur <- getUrlRender- creds <- getFbCredentials+ creds <- YF.getFbCredentials channelFile <- getFbChannelFile return [ ("appId", A.toJSON $ TE.decodeUtf8 $ FB.appId creds) , ("channelUrl", A.toJSON $ ur channelFile)@@ -353,13 +349,6 @@ val = "<script src=\"//connect.facebook.net/en_US/all.js\"></script>" --- | Returns Facebook's 'FB.Credentials' from inside a--- 'GHandler'. Just a convenience around 'fbCredentials'.-getFbCredentials :: YesodAuthFbClientSide master =>- GHandler sub master FB.Credentials-getFbCredentials = fbCredentials <$> getYesod-- -- | Yesod authentication plugin using Facebook's client-side -- authentication flow. --@@ -389,8 +378,8 @@ ur <- getUrlRender tm <- getRouteToMaster when (redirectToReferer y) setUltDestReferer- let creds = fbCredentials y- manager = authHttpManager y+ let creds = YF.fbCredentials y+ manager = authHttpManager y redirectTo = ur $ tm $ fbcsR ["login", "back"] uncommas "" = [] uncommas xs = case break (== ',') xs of@@ -406,7 +395,7 @@ tm <- getRouteToMaster mr <- getMessageRender fbjssdkpc <- widgetToPageContent (facebookJSSDK tm)- rephtml <- hamletToRepHtml $ [hamlet|+ rephtml <- hamletToRepHtml $ [hamlet|$newline never $doctype 5 <html> <head>@@ -425,7 +414,7 @@ login :: YesodAuth master => (Route Auth -> Route master) -> GWidget sub master ()- login _ = [whamlet|+ login _ = [whamlet|$newline never <p> <a href="#" onclick="#{facebookLogin perms}"> _{Msg.Facebook}@@ -464,8 +453,9 @@ GHandler sub master (Either String FB.UserAccessToken) getUserAccessToken = runErrorT $ do- creds <- lift getFbCredentials- manager <- authHttpManager <$> lift getYesod+ y <- lift getYesod+ let creds = YF.fbCredentials y+ manager = authHttpManager y unparsed <- toErrorT "cookie not found" $ lookupCookie (signedRequestCookieName creds) A.Object parsed <- toErrorT "cannot parse signed request" $ FB.runFacebookT creds manager $
src/Yesod/Auth/Facebook/ServerSide.hs view
@@ -148,7 +148,7 @@ -> GWidget sub master () login tm = do redirectUrl <- lift (getRedirectUrl tm)- [whamlet|+ [whamlet|$newline never <p> <a href="#{redirectUrl}">_{Msg.Facebook} |]
yesod-auth-fb.cabal view
@@ -1,5 +1,5 @@ Name: yesod-auth-fb-Version: 1.1+Version: 1.2 Synopsis: Authentication backend for Yesod using Facebook. Homepage: https://github.com/meteficha/yesod-auth-fb License: BSD3@@ -50,6 +50,7 @@ , http-conduit , text >= 0.7 && < 0.12 , transformers >= 0.1.3 && < 0.4+ , yesod-fb == 0.1.* , fb == 0.11.* , conduit == 0.5.* , bytestring == 0.9.*