Guest User

Untitled

a guest
Dec 8th, 2018
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. const express = require('express');
  2. const users = express.Router();
  3. const cors = require('cors');
  4. const jwt = require('jsonwebtoken');
  5. const bcrypt = require('bcrypt');
  6.  
  7. const User = require('../models/User');
  8. users.use(cors())
  9.  
  10. process.env.SECRET_KEY = 'secret'
  11.  
  12. //Api starting route
  13. users.get('/', (req, res) => {
  14. res.send('User registration and verification')
  15. });
  16.  
  17. //REGISTER new user
  18. users.post('/register', (req, res) => {
  19. const userData = {
  20. user_name: req.body.user_name,
  21. password: req.body.password
  22. }
  23.  
  24. User.findOne({
  25. where: {
  26. user_name: req.body.user_name
  27. }
  28. })
  29. .then(user => {
  30. if(!user) {
  31. bcrypt.hash(req.body.password, 10, (err, hash) => {
  32. userData.password = hash
  33. User.create(userData)
  34. .then(user => {
  35. res.json({status: user.user_name + ' registered'})
  36. })
  37. .catch(err => {
  38. res.send('error: ' + err)
  39. })
  40. })
  41. } else {
  42. res.json({error: 'Uesr already exists'})
  43. }
  44. })
  45. .catch(err => {
  46. res.send('error: ' + err)
  47. })
  48. })
  49.  
  50. //LOGIN
  51. users.post('/login', (req, res) => {
  52. User.findOne({
  53. where: {
  54. user_name: req.body.user_name
  55. }
  56. })
  57. .then(user => {
  58. if(user) {
  59. if(bcrypt.compareSync(req.body.password, user.password)) {
  60. let token = jwt.sign(user.dataValues, process.env.SECRET_KEY, {
  61. expiresIn: 1440
  62. })
  63. res.send(token)
  64. }
  65. } else {
  66. res.status(400).json({error: 'User does not exist'})
  67.  
  68. }
  69. })
  70. .catch(err => {
  71. res.status(400).json({ error: err })
  72. })
  73. })
  74.  
  75. module.exports = users
Add Comment
Please, Sign In to add comment