UNPKG

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
// 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);