verify有问题吗
来源:9-17 导航丢失问题是修复与认证校验优化

qq_蓝骏毅_04076633
2021-04-25
JsonWebTokenError: jwt malformed at Object.module.exports [as verify] (C:\Users\pc\Desktop\projects\book-mgr\book-mgr-be\node_modules\jsonwebtoken\verify.js:63:17) at C:\Users\pc\Desktop\projects\book-mgr\book-mgr-be\src\helpers\token\index.js:20:9 at new Promise (<anonymous>) at verify (C:\Users\pc\Desktop\projects\book-mgr\book-mgr-be\src\helpers\token\index.js:19:10) at checkUser (C:\Users\pc\Desktop\projects\book-mgr\book-mgr-be\src\helpers\token\index.js:51:44) at dispatch (C:\Users\pc\Desktop\projects\book-mgr\book-mgr-be\node_modules\koa-compose\index.js:42:32) at C:\Users\pc\Desktop\projects\book-mgr\book-mgr-be\node_modules\koa-unless\index.js:26:14 at dispatch (C:\Users\pc\Desktop\projects\book-mgr\book-mgr-be\node_modules\koa-compose\index.js:42:32) at catchTokenError (C:\Users\pc\Desktop\projects\book-mgr\book-mgr-be\src\helpers\token\index.js:78:10) at dispatch (C:\Users\pc\Desktop\projects\book-mgr\book-mgr-be\node_modules\koa-compose\index.js:42:32) at C:\Users\pc\Desktop\projects\book-mgr\book-mgr-be\node_modules\koa-body\index.js:148:14 at processTicksAndRejections (internal/process/task_queues.js:97:5) at async cors (C:\Users\pc\Desktop\projects\book-mgr\book-mgr-be\node_modules\@koa\cors\index.js:98:16)
const verify = (token) => { return new Promise((resolve, reject) => { jwt.verify(token, config.JWT_SECRET, (err, payload) => { if (err) { reject(err); return; } resolve(payload); }); }); };
onst res401 = (ctx) => { ctx.status = 401; ctx.body = { code: 0, msg: '用户校验失败', }; }; const checkUser = async (ctx, next) => { const { _id, account, character } = await verify(getToken(ctx)); //console.log(payload); const user = await User.findOne({ _id, }).exec(); if (!user) { res401(ctx); return; } if (account !== user.account) { res401(ctx); return; } if (character !== user.character) { res401(ctx); return; } await next(); };
写回答
2回答
-
qq_蓝骏毅_04076633
提问者
2021-04-25
const jwt = require('jsonwebtoken') const config = require('../../project.config') const koaJwt = require('koa-jwt') const mongoose = require('mongoose') const User = mongoose.model('User') const getToken = (ctx) => { let { authorization } = ctx.header; return authorization.replace('Bearer ', '').replace('bearer ', ''); }; const verify = (token) => { return new Promise((resolve, reject) => { jwt.verify(token, config.JWT_SECRET, (err, payload) => { if (err) { reject(err); return; } resolve(payload); }); }); }; const middleware = (app) => { app.use(koaJwt({ secret: config.JWT_SECRET, }).unless({ path: [ /^\/auth\/login/, /^\/auth\/register/, ], })); }; const checkUser = async (ctx, next) => { const payload = await verify(getToken(ctx)); console.log(payload); await next(); } const catchTokenError = async (ctx, next) => { return next().catch((error) => { if (error.status === 401) { ctx.status = 401; ctx.body = { code: 0, msg: 'token error', }; } else { throw error; } }); };; module.exports = { verify, getToken, middleware, catchTokenError, };
是不在这里打印token
012021-04-26 -
然冬
2021-04-25
先看token是不是正常的
00
相似问题
填了修改密码弹出这个问题
回答 2
老师我有个小问题
回答 1