Advertisement
Guest User

Untitled

a guest
Mar 3rd, 2019
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.07 KB | None | 0 0
  1. const express = require("express");
  2. const router = express.Router();
  3. const bcrypt = require("bcryptjs");
  4. const jwt = require("jsonwebtoken");
  5. const passport = require("passport");
  6. const keys = require("../../config/keys");
  7.  
  8. //LOAD MODEL
  9. const User = require("../../models/User");
  10.  
  11. // @route POST api/users/register
  12. // @desc Register user
  13. // @access Public
  14. router.post("/register", (req, res) => {
  15. User.findOne({ email: req.body.email }).then(user => {
  16. if (user) {
  17. return res.status(400).json({ error: "Email sudah ada" });
  18. } else {
  19. //TODO: ADD NEW USER AND HASHING PASSWORD
  20. const newUser = new User({
  21. name: req.body.name,
  22. email: req.body.email,
  23. password: req.body.password
  24. });
  25.  
  26. //hashing password
  27. bcrypt.genSalt(10, (err, salt) => {
  28. bcrypt.hash(newUser.password, salt, (err, hash) => {
  29. if (err) throw err;
  30. newUser.password = hash;
  31. newUser
  32. .save()
  33. .then(user => res.json(user))
  34. .catch(err => console.log(err));
  35. });
  36. });
  37. }
  38. });
  39. });
  40.  
  41. // @route POST api/users/login
  42. // @desc Login User
  43. // @access Public
  44. router.post("/login", (req, res) => {
  45. const email = req.body.email;
  46. const password = req.body.password;
  47.  
  48. User.findOne({ email })
  49. .then(user => {
  50. if (!user) {
  51. return res.status(404).json({ error: "Email tidak ada!" });
  52. }
  53.  
  54. //Check password
  55. bcrypt.compare(password, user.password).then(isMatch => {
  56. if (isMatch) {
  57. //UserMatched
  58. const payload = { id: user.id, name: user.name }; //Create JWT Payload
  59. //Sign Token
  60. jwt.sign(
  61. payload,
  62. keys.secretKey,
  63. { expiresIn: 3600 },
  64. (err, token) => {
  65. res.json({
  66. success: true,
  67. token: "Bearer " + token
  68. });
  69. }
  70. );
  71. } else {
  72. return res.status(400).json({ error: "Password salah!" });
  73. }
  74. });
  75. })
  76. .catch(err => console.log(err));
  77. });
  78.  
  79. module.exports = router;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement