Files
CloudBudget/app/security/passport.js

40 lines
1.2 KiB
JavaScript

var mongoose = require('mongoose'),
User = mongoose.model('User'),
passport = require('passport'),
LocalStrategy = require('passport-local'),
JwtStrategy = require('passport-jwt').Strategy,
security = require('../../config/security');
passport.use( new LocalStrategy(
function(username, password, done) {
User.getAuthenticated(username, password, function(error, user, errorStatus) {
if( error ) {
return done(error, null);
}
if( !user ) {
return done(null, false);
}
return done(null, user);
});
}
));
passport.use( new JwtStrategy(security.jwt, function(jwt_payload, done) {
User.findById(jwt_payload.user_id, function(error, user) {
if( error ) {
return done(error, null);
}
if( user ) {
return done(null, user);
} else {
return done(null, false);
}
});
}));
module.exports = {
jwt: passport.authenticate('jwt', {session: false}),
local: passport.authenticate('local', {session: false})
}