Guest User

Untitled

a guest
Jan 30th, 2018
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1. const bcrypt = require('bcryptjs');
  2. const express = require('express');
  3. const jwt = require('jsonwebtoken');
  4. const User = require('../models/user.model');
  5. const auth = require('../middlewares/auth.middleware.js') // the auth middleware
  6.  
  7. const router = express.Router();
  8.  
  9. router.post('/login', login, auth.signToken);
  10. router.post('/register', register);
  11.  
  12. function register(req, res, next) {
  13. const salt = bcrypt.genSaltSync(10);
  14. const hash = bcrypt.hashSync(req.body.password, salt);
  15.  
  16. const user = new User({
  17. username: req.body.username,
  18. password: hash,
  19. });
  20.  
  21. user.save((err) => {
  22. if (error) return next(err);
  23.  
  24. res.json({
  25. message: 'Registration complete',
  26. });
  27. });
  28. }
  29.  
  30. function login(req, res, next) {
  31. User.findOne({
  32. username: req.body.username,
  33. }, auth).select('+password');
  34.  
  35. function auth(err, user) {
  36. if (err) return next(err);
  37.  
  38. if (!user) {
  39. return res.json({
  40. login: false,
  41. message: 'Authentication failed. User not found.',
  42. });
  43. } else if (user) {
  44. bcrypt
  45. .compare(req.body.password, user.password)
  46. .then(compare);
  47. }
  48.  
  49. function compare(passwordsMatch) {
  50. delete user.password;
  51. if (passwordsMatch) loginSuccess();
  52. else loginError();
  53. }
  54.  
  55. function loginSuccess() {
  56. req.user = user;
  57.  
  58. return next();
  59. }
  60.  
  61. function loginError() {
  62. return res.json({
  63. login: false,
  64. message: 'Authentication failed. Wrong password.',
  65. });
  66. }
  67. }
  68. }
  69.  
  70. module.exports = router;
Add Comment
Please, Sign In to add comment