Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const express = require('express');
- const router = express.Router();
- const passport = require('passport');
- const jwt = require('jsonwebtoken');
- const User = require('../models/user');
- const config = require('../config/database');
- //Register
- router.post('/register',(req,res,next) => {
- let newUser = new User({
- name: req.body.name,
- email: req.body.email,
- username: req.body.username,
- password: req.body.password
- });
- User.addUser(newUser, (err)=>{
- if(err){
- res.json({
- success: false,
- msg:'Failed to register user'
- });
- } else{
- res.json({
- success: true,
- msg:'User registered'
- });
- }
- });
- });
- //Authenticate
- router.post('/authenticate',(req,res,next) => {
- const username = req.body.username;
- const password = req.body.password;
- User.getUserByUsername(username, (err, user)=>{
- if(err) throw err;
- if(!user)
- return res.json({
- success: false,
- msg: 'User not found'
- });
- User.comparePassword(password, user.password, (err, isMatch) => {
- if(err) throw err;
- if(isMatch){
- const token = jwt.sign({ data: user },config.secret,{
- expiresIn: 604800 // 1 week
- });
- res.json({
- success: true,
- toke: 'JWT ' + token,
- user: {
- id: user._id,
- name: user.name,
- username: user.username,
- email: user.email
- }
- });
- } else{
- return res.json({
- success : false,
- msg: 'Wrong password'
- });
- }
- })
- })
- });
- //Profile
- router.get('/profile', passport.authenticate('jwt', {session:false}),(req,res,next) => {
- res.send({user: req.user});
- });
- /*//Validate
- router.get('/validate',(req,res,next) => {
- res.send('VALIDATE');
- })*/
- module.exports = router;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement