jwt.js 736 B

123456789101112131415161718192021222324252627282930313233
  1. 'use strict';
  2. module.exports = options => {
  3. return async function jwt(ctx, next) {
  4. const str = ctx.request.header.authorization;
  5. let decode;
  6. if (str) {
  7. try {
  8. const token = str.substring(7);
  9. // 解码token
  10. decode = ctx.app.jwt.verify(token, options.secret);
  11. } catch (error) {
  12. console.log(error, 11111);
  13. ctx.status = 401;
  14. ctx.body = {
  15. errmsg: error.message,
  16. errcode: -1001,
  17. };
  18. return;
  19. }
  20. if (decode) {
  21. await next();
  22. return decode;
  23. }
  24. } else {
  25. ctx.status = 401;
  26. ctx.body = {
  27. errmsg: '身份过期,重新登录',
  28. errcode: -1002,
  29. };
  30. return;
  31. }
  32. };
  33. };