Advertisement
Guest User

Untitled

a guest
Oct 7th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.09 KB | None | 0 0
  1. var express = require('express');
  2. var session = require('express-session');
  3. var passport = require('passport');
  4. var localStrategy = require('passport-local').Strategy;
  5.  
  6. //passport
  7.  
  8. app.use(passport.initialize());
  9. app.use(passport.session());
  10.  
  11. var express = require('express');
  12. var User = require('../models/users');
  13. var passport = require('passport');
  14. var LocalStrategy = require('passport-local').Strategy;
  15.  
  16. passport.serializeUser(function(user, done) {
  17. done(null, user.id);
  18. });
  19.  
  20. passport.deserializeUser(function(id, done) {
  21. User.findId(id, function(err, user) {
  22. done(err, user);
  23. });
  24. });
  25.  
  26. passport.use(new LocalStrategy(
  27. function(username, password, done) {
  28. console.log("enter local startegy");
  29.  
  30. User.findUsername(username, function(err, user) {
  31.  
  32. if (err) { return done(err); }
  33. if (!user) {
  34. console.log("unknown unser");
  35. return done(null, false, { message: 'Incorrect username.' });
  36. }
  37.  
  38. user.comparePassword(password,user.passport,function (err,isMatch){
  39. if(err) throw err;
  40. if(isMatch){
  41. return done(null, user);
  42. }else{
  43. console.log("password not matching");
  44. return done(null, false, { message: 'Incorrect password.' });
  45. }
  46. })
  47. });
  48.  
  49. }
  50.  
  51. ));
  52.  
  53. router.post('/login',passport.authenticate('local-login', {failureFlash: 'Invalid username or password ,try again', failureRedirect: '/users/login' }),function(req,res,next){
  54. console.log('authentication successful');
  55. req.flash('success','your logged in');
  56. res.location('/');
  57. res.redirect('/');
  58. });
  59.  
  60. var mongos = require('mongoose');
  61. var bcrypt = require('bcrypt');
  62. var db = mongos.connection;
  63.  
  64. //mongos.connect('mongodb://localhost/nodeauth');
  65.  
  66. mongos.connect('mongodb://localhost/nodeauth', {
  67. useMongoClient: true,
  68. /* other options */
  69. });
  70.  
  71.  
  72.  
  73.  
  74. // User schema
  75.  
  76. var userSchema = mongos.Schema({
  77.  
  78. username : {
  79. type: String,
  80. index: true
  81. },
  82.  
  83. password: {
  84. type: String,
  85. required: true,
  86. bcrypt: true,
  87. },
  88.  
  89. email: {
  90. type: String,
  91. },
  92.  
  93. name: {
  94. type: String,
  95. },
  96. image: {
  97. type: String,
  98. }
  99. });
  100.  
  101. var User = module.exports = mongos.model('User',userSchema);
  102.  
  103. // check password .. for login
  104. module.exports.comparePassword = function(password ,hash,callback){
  105. console.log("checking password");
  106.  
  107. bcrypt.compare(password,hash,function(err ,isMatach){
  108.  
  109. if(err) return callback(err);
  110. return(null,isMatach);
  111.  
  112. });
  113. }
  114.  
  115. // check user name ... for login
  116. module.exports.findUsername = function(username , callback){
  117. console.log("checking username");
  118. User.findOne({username:username},callback);
  119. }
  120.  
  121. // check id .. for login
  122. module.exports.findId = function(id , callback){
  123. User.findById(id,callback);
  124. }
  125.  
  126.  
  127. // check user
  128. module.exports.createUser = function(newUser,callback){
  129.  
  130. bcrypt.hash(newUser.password,10,function(err,hash){
  131. if(err) throw err;
  132. // set new password
  133. newUser.password = hash;
  134. // create user
  135. newUser.save(callback);
  136.  
  137. });
  138.  
  139.  
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement