loginUser.js 830 B

12345678910111213141516171819202122232425262728
  1. const jsonWebToken = require('jsonwebtoken');
  2. module.exports = (options, app) => {
  3. return async function jwt(ctx, next) {
  4. // if( app.config.env == 'local' || true) { //本地测试环境,设置一个fake用户,跳过登录
  5. // ctx.state.user = { id: 1}
  6. // await next();
  7. // return;
  8. // }
  9. let authToken = ctx.header.authorization;
  10. if (!authToken) {
  11. ctx.bodyResult(401, null,'no header.authorization!');
  12. return;
  13. }
  14. let ret = await ctx.jwtVerify(authToken, options.secret, options.options);
  15. if( !ret.verify )
  16. {
  17. ctx.bodyResult(401, null,ret.message);
  18. return;
  19. }
  20. ctx.state.user = ret.message;
  21. await next();
  22. };
  23. };