jwt.js 637 B

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