Advertisement
Guest User

Untitled

a guest
Nov 26th, 2014
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.27 KB | None | 0 0
  1. var mongoose = require('mongoose');
  2. var bcrypt = require('bcrypt');
  3.  
  4. var userSchema = new mongoose.Schema({
  5. local: {
  6. username: String,
  7. password: String
  8. }
  9. });
  10.  
  11. userSchema.methods.generateHash = function(password) {
  12. return bcrypt.hashSync(password, bcrypt.genSaltSync(8), null);
  13. };
  14. userSchema.methods.validPassword = function(password) {
  15. return bcrypt.compareSync(password, this.local.password);
  16. };
  17.  
  18. module.exports = mongoose.model('User', userSchema);
  19.  
  20. var express = require('express');
  21. var mongoose = require('mongoose');
  22. var passport = require('passport');
  23. var bodyParser = require('body-parser');
  24. var cookieParser = require('cookie-parser');
  25. var app = express();
  26.  
  27. var User = require('./models/user.js');
  28. app.use(cookieParser());
  29. app.use(bodyParser());
  30.  
  31. // Database
  32. mongoose.connect('mongodb://localhost', function(err) {
  33. if (err) throw err;
  34. console.log('Successfully connected to the database!');
  35. });
  36.  
  37. // Passport
  38. app.use(passport.initialize());
  39. app.use(passport.session());
  40. var localStrategy = require('passport-local').Strategy;
  41.  
  42. passport.use('local-signup', new localStrategy({
  43. passReqToCallback: true
  44. },
  45. function(req, username, password, done) {
  46. process.nextTick(function() {
  47. User.findOne({'local.username' : username }, function(err, user) {
  48. if (err)
  49. console.log('error');
  50. return done(error);
  51.  
  52. if (user) {
  53. console.log('User exists');
  54. return done(null, false);
  55. }
  56. else {
  57. var newUser = new User();
  58. newUser.local.username = username;
  59. newUser.local.password = newUser.generateHash(password);
  60.  
  61. newUser.save(function(err, data) {
  62. if (err) throw err;
  63. console.log(data);
  64. return done(null, newUser);
  65. });
  66. }
  67. });
  68. });
  69. }
  70. ));
  71.  
  72. // Routes
  73. app.post('/signup', passport.authenticate('local-signup',
  74. {
  75. successRedirect: '/',
  76. failureRedirect: '/signup'
  77. }
  78. ));
  79.  
  80. // Server listens
  81. var port = process.env.PORT || 3000;
  82. app.listen(port, function() {
  83. console.log("Listen to port " + port);
  84. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement