Advertisement
Guest User

Untitled

a guest
Nov 5th, 2017
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const express = require('express');
  2. const router = express.Router();
  3. const passport = require('passport');
  4. const jwt = require('jsonwebtoken');
  5. const User = require('../models/user');
  6. const config = require('../config/database');
  7.  
  8.  
  9. //Register
  10. router.post('/register',(req,res,next) => {
  11.     let newUser = new User({
  12.         name: req.body.name,
  13.         email: req.body.email,
  14.         username: req.body.username,
  15.         password: req.body.password
  16.     });
  17.  
  18.     User.addUser(newUser, (err)=>{
  19.         if(err){
  20.             res.json({
  21.                 success: false,
  22.                 msg:'Failed to register user'
  23.             });
  24.         } else{
  25.             res.json({
  26.                 success: true,
  27.                 msg:'User registered'
  28.             });
  29.         }
  30.     });
  31.  
  32. });
  33.  
  34.  
  35. //Authenticate
  36. router.post('/authenticate',(req,res,next) => {
  37.     const username = req.body.username;
  38.     const password = req.body.password;
  39.  
  40.     User.getUserByUsername(username, (err, user)=>{
  41.         if(err) throw err;
  42.         if(!user)
  43.             return res.json({
  44.                 success: false,
  45.                 msg: 'User not found'
  46.             });
  47.        
  48.         User.comparePassword(password, user.password, (err, isMatch) => {
  49.             if(err) throw err;
  50.             if(isMatch){
  51.                 const token = jwt.sign({ data: user },config.secret,{
  52.                     expiresIn: 604800 // 1 week
  53.                 });
  54.  
  55.                 res.json({
  56.                     success: true,
  57.                     toke: 'JWT ' + token,
  58.                     user: {
  59.                         id: user._id,
  60.                         name: user.name,
  61.                         username: user.username,
  62.                         email: user.email
  63.                     }
  64.                 });
  65.             } else{
  66.                 return res.json({
  67.                     success : false,
  68.                     msg: 'Wrong password'
  69.                 });
  70.             }
  71.            
  72.         })
  73.  
  74.     })    
  75. });
  76.  
  77. //Profile
  78. router.get('/profile', passport.authenticate('jwt', {session:false}),(req,res,next) => {
  79.     res.send({user: req.user});
  80. });
  81.  
  82. /*//Validate
  83. router.get('/validate',(req,res,next) => {
  84.     res.send('VALIDATE');
  85. })*/
  86.  
  87. module.exports = router;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement