JsonWebToken.js 538 B

12345678910111213141516171819202122
  1. const { callbackify, promisify } = require('util')
  2. const JWT = require('jsonwebtoken')
  3. const Settings = require('@overleaf/settings')
  4. const jwtSign = promisify(JWT.sign)
  5. async function sign(payload, options = {}) {
  6. const key = Settings.jwt.key
  7. const algorithm = Settings.jwt.algorithm
  8. if (!key || !algorithm) {
  9. throw new Error('missing JWT configuration')
  10. }
  11. const token = await jwtSign(payload, key, { ...options, algorithm })
  12. return token
  13. }
  14. module.exports = {
  15. sign: callbackify(sign),
  16. promises: {
  17. sign,
  18. },
  19. }