passport.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. var mongoose = require('mongoose'),
  2. User = mongoose.model('User'),
  3. passport = require('passport'),
  4. LocalStrategy = require('passport-local'),
  5. JwtStrategy = require('passport-jwt').Strategy,
  6. security = require('../../config/security');
  7. passport.use( new LocalStrategy(
  8. function(username, password, done) {
  9. User.getAuthenticated(username, password, function(error, user, errorStatus) {
  10. if( error ) {
  11. return done(error, null);
  12. }
  13. if( !user ) {
  14. return done(null, false);
  15. }
  16. return done(null, user);
  17. });
  18. }
  19. ));
  20. passport.use( new JwtStrategy(security.jwt, function(jwt_payload, done) {
  21. User.findById(jwt_payload.user_id, function(error, user) {
  22. if( error ) {
  23. return done(error, null);
  24. }
  25. if( user ) {
  26. return done(null, user);
  27. } else {
  28. return done(null, false);
  29. }
  30. });
  31. }));
  32. module.exports = {
  33. jwt: passport.authenticate('jwt', {session: false}),
  34. local: passport.authenticate('local', {session: false})
  35. }