Advertisement
Guest User

Untitled

a guest
Dec 1st, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.73 KB | None | 0 0
  1. const express = require('express');
  2. const router = express.Router();
  3. const passport = require('passport');
  4. const jwt = require('jsonwebtoken');
  5. const config = require('../../config/database');
  6. const User = require('../../models/user');
  7. /*const MongoClient = require('mongodb').MongoClient;
  8. const ObjectID = require('mongodb').ObjectID;
  9.  
  10. const passport = require('passport');
  11. const jwt = require('jsonwebtoken');*/
  12.  
  13.  
  14. //REGISTER
  15. router.post('/register',(req,res,next)=>{
  16. let newUser = new User({
  17. //name: req.body.name,
  18. email: req.body.email,
  19. //username: req.body.username,
  20. password: req.body.password
  21. });
  22.  
  23. // Check if a user with that email is already registered
  24. User.getUserByUsername(newUser.email, (error, user)=>{
  25. let newUser = new User({
  26. email: req.body.email,
  27. password: req.body.password
  28. });
  29.  
  30. // Check if a user with that email is already registered
  31. User.getUserByEmail(newUser.email, (error, user)=>{
  32.  
  33. // Throw error if any
  34. if(error) throw error;
  35.  
  36. console.log('user email is '+newUser.email);
  37. // email not found
  38. if(!user){
  39. console.log('New user');
  40. User.addUser(newUser, (err, user)=>{
  41. if(err){
  42. res.json({
  43. success: false,
  44. message: 'Failed to register user'
  45. });
  46. }
  47. else{
  48. res.json({
  49. success: true,
  50. message: 'User successfully registered'
  51. });
  52. }
  53. });
  54. }
  55. // email is found - user already exists
  56. else{
  57. console.log('This email already exists');
  58. res.json({
  59. success: false,
  60. message: 'Email already in use'
  61. });
  62. }
  63. });
  64. });
  65. });
  66.  
  67. //AUTHENTICATE
  68. router.post('/authenticate',(req,res,next)=>{
  69. const email = req.body.email;
  70. const password = req.body.password;
  71. User.getUserByEmail(email, (err, user) => {
  72. if(err) throw err;
  73. if(!user){
  74. return res.json({success: false, msg: 'User not found'});
  75. }
  76.  
  77. User.comparePassword(password, user.password, (err, isMatch) => {
  78. if(err) throw err;
  79. if(isMatch){
  80. //const token = jwt.sign(user, config.secret, { to const token = jwt.sign({data: user}, config.secret, {
  81. const token = jwt.sign({data: user}, config.secret, {
  82. expiresIn: 604800 // 1 week
  83. });
  84.  
  85. res.json({
  86. success: true,
  87. token: 'JWT '+token,
  88. user: {
  89. id: user._id,
  90. //name: user.name,
  91. ///username: user.username,
  92. email: user.email
  93. }
  94. });
  95. } else {
  96. return res.json({success: false, msg: 'Wrong password'});
  97. }
  98. });
  99. });
  100. });
  101. //PROFILE
  102. router.get('/profile', passport.authenticate('jwt', {session:false}),(req,res,next)=>{
  103. res.json({user: req.user});
  104. });
  105.  
  106. module.exports = router;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement