artsy-passport
Version:
Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).
57 lines (46 loc) • 2.02 kB
JavaScript
// Generated by CoffeeScript 1.11.1
(function() {
var FacebookStrategy, LinkedInStrategy, LocalStrategy, TwitterStrategy, callbacks, deserialize, opts, passport, ref, serialize;
passport = require('passport');
FacebookStrategy = require('passport-facebook').Strategy;
TwitterStrategy = require('passport-twitter').Strategy;
LocalStrategy = require('passport-local').Strategy;
LinkedInStrategy = require('passport-linkedin').Strategy;
callbacks = require('./callbacks');
ref = require('./serializers'), serialize = ref.serialize, deserialize = ref.deserialize;
opts = require('../options');
module.exports = function() {
passport.serializeUser(serialize);
passport.deserializeUser(deserialize);
passport.use(new LocalStrategy({
usernameField: 'email',
passReqToCallback: true
}, callbacks.local));
if (opts.FACEBOOK_ID && opts.FACEBOOK_SECRET) {
passport.use(new FacebookStrategy({
state: true,
clientID: opts.FACEBOOK_ID,
clientSecret: opts.FACEBOOK_SECRET,
passReqToCallback: true,
callbackURL: "" + opts.APP_URL + opts.facebookCallbackPath
}, callbacks.facebook));
}
if (opts.TWITTER_KEY && opts.TWITTER_SECRET) {
passport.use(new TwitterStrategy({
consumerKey: opts.TWITTER_KEY,
consumerSecret: opts.TWITTER_SECRET,
passReqToCallback: true,
callbackURL: "" + opts.APP_URL + opts.twitterCallbackPath
}, callbacks.twitter));
}
if (opts.LINKEDIN_KEY && opts.LINKEDIN_SECRET) {
return passport.use(new LinkedInStrategy({
consumerKey: opts.LINKEDIN_KEY,
consumerSecret: opts.LINKEDIN_SECRET,
passReqToCallback: true,
callbackURL: "" + opts.APP_URL + opts.linkedinCallbackPath,
profileFields: ['id', 'first-name', 'last-name', 'email-address', 'headline', 'location', 'industry', 'summary', 'specialties', 'positions', 'public-profile-url']
}, callbacks.linkedin));
}
};
}).call(this);