Files
freeCodeCamp/server/boot/passport.js
2015-06-01 17:01:54 -07:00

69 lines
1.5 KiB
JavaScript

var express = require('express'),
passport = require('passport'),
passportConf = require('../../config/passport');
var router = express.Router();
var passportOptions = {
successRedirect: '/',
failureRedirect: '/login'
};
router.all('/account', passportConf.isAuthenticated);
router.get('/auth/twitter', passport.authenticate('twitter'));
router.get(
'/auth/twitter/callback',
passport.authenticate('twitter', {
successRedirect: '/',
failureRedirect: '/login'
})
);
router.get(
'/auth/linkedin',
passport.authenticate('linkedin', {
state: 'SOME STATE'
})
);
router.get(
'/auth/linkedin/callback',
passport.authenticate('linkedin', passportOptions)
);
router.get(
'/auth/facebook',
passport.authenticate('facebook', {scope: ['email', 'user_location']})
);
router.get(
'/auth/facebook/callback',
passport.authenticate('facebook', passportOptions), function (req, res) {
res.redirect(req.session.returnTo || '/');
}
);
router.get('/auth/github', passport.authenticate('github'));
router.get(
'/auth/github/callback',
passport.authenticate('github', passportOptions), function (req, res) {
res.redirect(req.session.returnTo || '/');
}
);
router.get(
'/auth/google',
passport.authenticate('google', {scope: 'profile email'})
);
router.get(
'/auth/google/callback',
passport.authenticate('google', passportOptions), function (req, res) {
res.redirect(req.session.returnTo || '/');
}
);
module.exports = router;