Advertisement
Guest User

Untitled

a guest
Sep 19th, 2019
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.39 KB | None | 0 0
  1. const express = require("express");
  2. const router = express.Router();
  3. const gravatar = require("gravatar");
  4. const bcrypt = require("bcrypt");
  5. const jwt = require("jsonwebtoken");
  6. const keys = require("../../config/keys"); // sada smo pristupili tajni
  7.  
  8. const User = require("../../models/User");
  9.  
  10. router.get("/test", (req, res) => res.json({ poruka: "Korisnici nam rade!"}));
  11.  
  12. router.post("/register", (req, res) => {
  13. User.findOne({ email: req.body.email })
  14. .then(user => {
  15. if (user) {
  16. return res.status(400).json({ email: "e-mail postoji!"});
  17. } else {
  18.  
  19. const avatar = gravatar.url(req.body.email, {
  20. s: "200", // velicina
  21. r: "pg", // rating
  22. d: "mm" // default
  23. });
  24.  
  25. const newUser = new User({
  26. name: req.body.name,
  27. email: req.body.email,
  28. avatar,
  29. password: req.body.password
  30. });
  31.  
  32. bcrypt.genSalt(10, (err, salt) => {
  33. bcrypt.hash(newUser.password, salt, (err, hash) => {
  34. if(err) throw err;
  35. newUser.password = hash;
  36. newUser.save().then(user => res.json(user))
  37. .catch(err => console.log(err));
  38. });
  39. });
  40. }
  41. });
  42. });
  43. // login korisnika
  44. router.post('/login', (req, res) => {
  45. const email = req.body.email;
  46. const password = req.body.password;
  47.  
  48. User.findOne({ email }).then(user => {
  49. if(!user) {
  50. return res.status(404).json({ email: "Korisnik nije nadjen!" });
  51. }
  52. bcrypt.compare(password, user.password).then(isMatch => {
  53. if(isMatch){
  54. // res.json({ Poruka: "Uspesno logovanje!" });
  55. // Sada cemo da poredimo korisnika
  56. const payload = { id: user.id, name: user.name, avatar: user.avatar };
  57. // Sada cemo da potpisemo token
  58. jwt.sign(payload, keys.secretOrKey, { expiresIn: 3600 }, (err, token) => {
  59. res.json({ success: true, token: "Bearer " + token });
  60. });
  61. } else {
  62. return res.status(400).json({ Poruka: "Password nije tacan!" });
  63. }
  64. });
  65. });
  66. });
  67.  
  68. module.exports = router;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement