verifyToken.js 875 B

123456789101112131415161718192021222324252627282930313233343536
  1. const jwt = require('jsonwebtoken')
  2. const userModel = require('../model/user.model')
  3. const response = require('../utils/responseHandler')
  4. module.exports = (req, res, next) => {
  5. const authHeader = req.headers.authorization
  6. const token =
  7. (req.params.token && req.params.token.split(' ')[1]) ||
  8. (authHeader && authHeader.split(' ')[1]) ||
  9. req.cookies['sidali-cookie']
  10. if (!token)
  11. return response.error(res, {
  12. code: 401,
  13. message: 'Token tidak ada',
  14. })
  15. jwt.verify(token, process.env.SRU51, async (err, data) => {
  16. if (err) {
  17. return response.error(res, {
  18. code: 401,
  19. message: 'Unauthorized',
  20. })
  21. }
  22. try {
  23. req.user = await userModel.findById(data._id)
  24. next()
  25. } catch (error) {
  26. return response.error(res, {
  27. code: 401,
  28. message: 'Unauthorized',
  29. })
  30. }
  31. })
  32. }