BSD-3-Clause licensed by Felipe Lessa, Michael Snoyman
This version can be pinned in stack with:yesod-auth-fb-1.10.1@sha256:cbd93b3c90574b999e01361c3e96bd80382483a334bdba6dc0d0088ad618c024,2562
Module documentation for 1.10.1
Depends on 16 packages
(full list with versions):
aeson,
base,
bytestring,
conduit,
fb,
http-conduit,
resourcet,
shakespeare,
text,
time,
transformers,
unliftio,
wai,
yesod-auth,
yesod-core,
yesod-fb yesod-auth-fb

Authentication backend for Yesod using Facebook
Demo
Sample code showing Facebook authentication in action:
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE OverloadedStrings #-}
import Data.Text (Text)
import Yesod
import Yesod.Auth
import Yesod.Facebook
import Yesod.Auth.Facebook.ServerSide
import Facebook (Credentials(..))
fbclientId :: Text
fbclientId = "sample_fb_client_id"
fbclientSecret :: Text
fbclientSecret = "sample_fb_secret"
data App =
App
mkYesod
"App"
[parseRoutes|
/ HomeR GET
/auth AuthR Auth getAuth
|]
instance Yesod App where
approot = ApprootStatic "http://localhost:3000"
instance YesodFacebook App where
fbCredentials _ = Credentials "yesod" fbclientId fbclientSecret
instance YesodAuth App where
type AuthId App = Text
getAuthId = return . Just . credsIdent
loginDest _ = HomeR
logoutDest _ = HomeR
authPlugins _ = [authFacebook ["user_about_me", "email"]]
-- The default maybeAuthId assumes a Persistent database. We're going for a
-- simpler AuthId, so we'll just do a direct lookup in the session.
maybeAuthId = lookupSession "_ID"
instance RenderMessage App FormMessage where
renderMessage _ _ = defaultFormMessage
getHomeR :: Handler Html
getHomeR = do
maid <- maybeAuthId
defaultLayout
[whamlet|
<p>Your current auth ID: #{show maid}
$maybe _ <- maid
<p>
<a href=@{AuthR LogoutR}>Logout
<a href=@{AuthR facebookLogout}>Facebook logout
$nothing
<p>
<a href=@{AuthR LoginR}>Go to the login page
|]
main :: IO ()
main = warp 3000 App
Version 1.10.1
- Relex constraints to use new version of fb
Version 1.10.0
- Relax bounds for latest lts
- Upper bounds for fb, yesdod-fb etc.
Version 1.9.1.0
Version 1.9.1
- Only pass
code
query param to getUserAccessTokenStep2
Version 1.9.0
- Supports conduit >= 1.3.0
- Documentation updated to include demo code.
- Supports latest yesod >= 1.6.0.
- Remove dependency on lifted-base and related ecosystem.