4.1.1 • Published 10 years ago

cantina-auth-facebook v4.1.1

Weekly downloads
3
License
-
Repository
github
Last release
10 years ago

cantina-auth-facebook

Facebook authentication for Cantina.

Dependencies

Adds Middleware

  • Facebook authentication middleware under the authURL route.

Configuration

  • successRedirect - Where to redirect after the authentication succeeds.
  • failureRedirect - Where to redirect if the authentication fails.
  • clientID - Facebook app client id.
  • clientSecret - Facebook app client secret.
  • callbackURL - Callback URL (publicly accessible) for authentication.
  • authURL - A path to initiation the authentication process.
  • scope - ?

Defaults

{
  'auth-facebook': {
    successRedirect: '/',
    failureRedirect: '/',
    authURL: '/login'
  }
}

Usage

Your application MUST provide handlers for serializing, deserializing, and verifying users.

  • app.serializeUser
  • app.deserializeUser
  • app.verifyFacebookUser

Example

var app = require('cantina').createApp();

app.boot(function(err) {
  if (err) return console.error(err);

  app.conf.add({
    'auth-facebook': {
      clientID: 'your id here',
      clientSecret: 'your secret here',
      callbackURL: 'http://mydomain.com/auth/facebook/callback',
      authURL: '/login/facebook',
      scope: 'email'
    }
  });

  app.serializeUser = function(user, cb) {
    return cb(null, user);
  };
  app.deserializeUser = function(obj, cb) {
    return cb(null, obj);
  };
  app.verifyFacebookUser = function(token, tokenSecret, profile, done) {
    return done(null, profile);
  };

  app.require('cantina-web');
  app.require('cantina-redis');
  app.require('cantina-session');
  app.require('cantina-auth');
  app.require('cantina-auth-facebook');

  app.start(function(err) {
    if (err) return console.error(err);

    app.middleware.get('/', function index(req, res) {
      res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});
      if (req.isAuthenticated()) {
        res.end('Welcome, <a href="https://facebook.com/' + req.user.username + '">' + req.user.displayName + '</a>!');
      }
      else {
        res.end('<a href="/login/facebook">click here to login via Facebook</a>');
      }
    });
  });
});

Developed by Terra Eclipse

Terra Eclipse, Inc. is a nationally recognized political technology and strategy firm located in Santa Cruz, CA and Washington, D.C.

4.1.1

10 years ago