Advertisement
Guest User

Untitled

a guest
Apr 5th, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.00 KB | None | 0 0
  1. var config = require('config').sequelize;
  2. var Sequelize = require('sequelize');
  3. var log = require('npmlog');
  4.  
  5. log.info('connecting to Postgres');
  6. var sequelize = new Sequelize(config.database, config.username,
  7. config.password, {
  8. host: config.host,
  9. dialect: config.dialect,
  10. pool: config.pool,
  11. omitNull: true
  12. });
  13.  
  14. var sequelize = require('../datastores/sequelize').sequelize;
  15. var DataTypes = require('sequelize');
  16. var Promise = require('bluebird');
  17.  
  18. var UserAccount = sequelize.define('UserAccount', {
  19. id: {
  20. type: DataTypes.INTEGER,
  21. field: 'id',
  22. primaryKey: true,
  23. autoIncrement: true
  24. },email: {
  25. type: DataTypes.STRING,
  26. field: 'email',
  27. allowNull: false,
  28. unique: true
  29. }, password: {
  30. type: DataTypes.STRING,
  31. field: 'password',
  32. allowNull: true
  33. }, {
  34. freezeTableName: true,
  35. });
  36. Promise.promisifyAll(UserAccount);
  37. module.exports = UserAccount;
  38.  
  39. const LocalStrategy = require('passport-local').Strategy;
  40. const User = require('../model/core/userAccount');
  41. const passport = require('passport');
  42.  
  43. function validateLocalAuth(email, password, done) {
  44. User.findOne({ where: { email: email } })
  45. .then((user) => {
  46. if (user === null || user.password !== password) {
  47. return done(null, false, {message: 'User doesn't exist'});
  48. }
  49. return done(null, user);
  50. });
  51. }
  52.  
  53. function localAuth() {
  54. return new LocalStrategy({
  55. usernameField: 'email',
  56. passwordField: 'password'
  57. }, validateLocalAuth);
  58. }
  59. passport.use(localAuth());
  60.  
  61. var passport = require('passport');
  62. var User = require('../../model/core/userAccount');
  63. require('./localHandelr');
  64.  
  65. passport.serializeUser(function(user, done) {
  66. done(null, user.id);
  67. });
  68.  
  69. passport.deserializeUser(function(id, done) {
  70. User.find({where: {id: id}})
  71. .then(function(user) {
  72. done(null, user.dataValues);
  73. })
  74. });
  75. app.post('/api/login', passport.authenticate('local'), (req, res) => {
  76. req.session.user = req.user;
  77. res.cookie('user', JSON.stringify(req.user));
  78. res.redirect('/');
  79. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement