jwt.js 992 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. const jwt = require('jsonwebtoken')
  2. const { encrypt, decrypt } = require('./utils')
  3. /**
  4. *
  5. * @param {*} payload
  6. * @param {string} secret
  7. */
  8. module.exports.generateToken = (payload, secret) => {
  9. return encrypt(jwt.sign({data: payload}, secret, { expiresIn: 60 * 60 * 24 }), secret)
  10. }
  11. /**
  12. *
  13. * @param {string} token
  14. * @param {string} secret
  15. */
  16. module.exports.verifyToken = (token, secret) => {
  17. try {
  18. // @ts-ignore
  19. return {payload: jwt.verify(decrypt(token, secret), secret, {}).data}
  20. } catch (err) {
  21. return {err}
  22. }
  23. }
  24. /**
  25. *
  26. * @param {object} res
  27. * @param {string} token
  28. * @param {object=} uppyOptions
  29. */
  30. module.exports.addToCookies = (res, token, uppyOptions) => {
  31. const cookieOptions = {
  32. maxAge: 1000 * 60 * 60 * 24 * 30, // would expire after 30 days
  33. httpOnly: true
  34. }
  35. if (uppyOptions.cookieDomain) {
  36. cookieOptions.domain = uppyOptions.cookieDomain
  37. }
  38. // send signed token to client.
  39. res.cookie('uppyAuthToken', token, cookieOptions)
  40. }