Advertisement
Guest User

Untitled

a guest
Aug 31st, 2017
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.69 KB | None | 0 0
  1. var bodyParser = require('body-parser');
  2. var passport = require('passport');
  3. var session = require('express-session');
  4. module.exports = function (app) {
  5. //BodyParser
  6. app.use(bodyParser.urlencoded({ extended: true }));
  7. app.use(bodyParser.json());
  8. //Passport
  9. app.use(session({ secret: 'keyboard cat', resave: true, saveUninitialized: true }));
  10. app.use(passport.initialize());
  11. app.use(passport.session()); // persistent login sessions
  12.  
  13. app.post('/registered', function (req, res) {
  14. console.log(req.body);
  15. res.end();
  16. });
  17. }
  18.  
  19. module.exports = function (sequelize, Sequelize) {
  20.  
  21. var User = sequelize.define('user', {
  22.  
  23. id: {
  24. autoIncrement: true,
  25. primaryKey: true,
  26. type: Sequelize.INTEGER
  27. },
  28.  
  29. firstname: {
  30. type: Sequelize.STRING,
  31. notEmpty: true
  32. },
  33.  
  34. lastname: {
  35. type: Sequelize.STRING,
  36. notEmpty: true
  37. },
  38.  
  39. email: {
  40. type: Sequelize.STRING,
  41. validate: {
  42. isEmail: true
  43. }
  44. },
  45.  
  46. password: {
  47. type: Sequelize.STRING,
  48. allowNull: false
  49. },
  50.  
  51. password_confirmation: {
  52. type: Sequelize.STRING,
  53. allowNull: false
  54. }
  55. });
  56.  
  57. return User;
  58.  
  59. var bCrypt = require('bcrypt-nodejs');
  60.  
  61.  
  62. module.exports = function(passport, user) {
  63.  
  64.  
  65. var User = user;
  66.  
  67. var LocalStrategy = require('passport-local').Strategy;
  68.  
  69.  
  70. passport.use('local-registered', new LocalStrategy(
  71.  
  72. {
  73.  
  74. usernameField: 'email',
  75.  
  76. passwordField: 'password',
  77.  
  78. passReqToCallback: true // allows us to pass back the entire request to the callback
  79.  
  80. },
  81.  
  82. function(req, email, password, done) {
  83.  
  84. var generateHash = function(password) {
  85.  
  86. return bCrypt.hashSync(password, bCrypt.genSaltSync(8), null);
  87.  
  88. };
  89.  
  90. User.findOne({
  91. where: {
  92. email: email
  93. }
  94. }).then(function(user) {
  95.  
  96. if (user)
  97.  
  98. {
  99.  
  100. return done(null, false, {
  101. message: 'That email is already taken'
  102. });
  103.  
  104. } else
  105.  
  106. {
  107.  
  108. var userPassword = generateHash(password);
  109.  
  110. var data =
  111.  
  112. {
  113. email: email,
  114.  
  115. password: userPassword,
  116.  
  117. firstname: req.body.firstname,
  118.  
  119. lastname: req.body.lastname
  120.  
  121. };
  122. User.create(data).then(function(newUser, created) {
  123. if (!newUser) {
  124. return done(null, false);
  125. }
  126. if (newUser) {
  127. return done(null, newUser);
  128. }
  129. });
  130. }
  131. });
  132. }
  133. ));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement