decode.js 549 B

12345678910111213141516171819202122
  1. const JWT = require('jsonwebtoken')
  2. const config = require('../../../config')
  3. const decode = async (req, res, next) => {
  4. const r = /^Bearer (.*)$/.exec(req.headers['authentication'])
  5. if (r) {
  6. const token = r[1]
  7. try {
  8. const decoded = await JWT.verify(token, config.auth.jwtSecret)
  9. req.user = decoded.user
  10. req.claims = decoded
  11. req.token = token
  12. next()
  13. } catch (err) {
  14. res.setHeader('X-JWT-Error', err.message || err.toString())
  15. next()
  16. }
  17. } else {
  18. next()
  19. }
  20. }
  21. module.exports = decode