Skip to content

Instantly share code, notes, and snippets.

@verma
Created July 17, 2014 18:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save verma/19e9abeb37a428302159 to your computer and use it in GitHub Desktop.
Save verma/19e9abeb37a428302159 to your computer and use it in GitHub Desktop.
// index.js
// Facebook login test!
//
var server = require("ferb")(),
session = require("express-session")({secret: '1234'}),
request = require("request");
var FACEBOOK_APP_SECRET = "APP_SECRET",
FACEBOOK_APP_ID = "APP_ID";
var passport = require('passport')
, FacebookStrategy = require('passport-facebook').Strategy;
passport.serializeUser(function(user, done) {
done(null, user);
});
passport.deserializeUser(function(user, done) {
done(null, user);
});
server.use(session);
server.use(passport.initialize());
server.use(passport.session());
passport.use(new FacebookStrategy({
clientID: FACEBOOK_APP_ID,
clientSecret: FACEBOOK_APP_SECRET,
callbackURL: "http://muchawesomeapp.com/auth/facebook/callback"
},
function(accessToken, refreshToken, profile, done) {
console.log(accessToken, refreshToken, profile);
done(null, {
user: profile.displayName,
accessToken: accessToken
});
}));
server.get("/", function(req, res) {
res.send("<html><body><a href='/login'>Click Me!</a></body></html>");
});
server.get("/yourein", function(req, res) {
request("https://graph.facebook.com/me/friends?access_token=" + req.user.accessToken, function(err, r, body) {
console.log(err, body);
console.log("Got stuff!");
res.send("<html><body><h1>You are in!</h1><p>" +
req.user.user + " : " +
req.user.accessToken + "</p></body></html>");
});
});
server.get("/login", passport.authenticate("facebook", { scope: ["user_friends"]}));
server.get("/auth/facebook/callback",
passport.authenticate('facebook', {
successRedirect: '/yourein',
failureRedirect: '/'
}));
server.listen(80);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment