auth.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. const router = require('express').Router()
  2. const User = require('../models/user')
  3. const virifyToken = require('../middlewares/verify-token')
  4. const jwt = require('jsonwebtoken')
  5. router.post('/auth/signup', async (req, res) => {
  6. if (!req.body.email || !req.body.password) {
  7. res.json({ success: false, message: 'please enter email or password' })
  8. } else {
  9. try {
  10. let newUser = new User()
  11. newUser.name = req.body.name
  12. newUser.email = req.body.email
  13. newUser.password = req.body.password
  14. await newUser.save()
  15. let token = jwt.sign(newUser.toJSON(), process.env.SECRET, {
  16. expiresIn: 604800
  17. })
  18. res.json({
  19. success: true,
  20. token,
  21. message: 'Succes created a new User'
  22. })
  23. } catch (err) {
  24. res.status(500).json({
  25. success: false,
  26. message: err.message
  27. })
  28. }
  29. }
  30. })
  31. router.get('/auth/user', virifyToken, async (req, res) => {
  32. try {
  33. let foundUser = await User.findOne({ _id: req.decoded._id })
  34. if (foundUser) {
  35. res.json({
  36. success: true,
  37. user: foundUser
  38. })
  39. }
  40. } catch (err) {
  41. res.status(500).json({
  42. success: false,
  43. message: err.message
  44. })
  45. }
  46. })
  47. module.exports = router