我想知道如何在未授权时更改express-jwt的响应,我尝试使用处理程序但不起作用
我需要帮助
// Authorization
const auth = require('express-jwt');
router.get('/', auth({secret: config.secretKey}),async(req,res,next)=>{
console.log('hola')
})当令牌无效时,返回以下内容
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>UnauthorizedError: invalid token
<br> at /Users/luisandrade/code/slothy_/back/node_modules/express-jwt/lib/index.js:102:22
<br> at Object.module.exports [as verify] (/Users/luisandrade/code/slothy_/back/node_modules/jsonwebtoken/verify.js:75:12)
<br> at verifyToken (/Users/luisandrade/code/slothy_/back/node_modules/express-jwt/lib/index.js:100:13)
<br> at fn (/Users/luisandrade/code/slothy_/back/node_modules/express-jwt/node_modules/async/lib/async.js:746:34)
<br> at /Users/luisandrade/code/slothy_/back/node_modules/express-jwt/node_modules/async/lib/async.js:1213:16
<br> at /Users/luisandrade/code/slothy_/back/node_modules/express-jwt/node_modules/async/lib/async.js:166:37
<br> at /Users/luisandrade/code/slothy_/back/node_modules/express-jwt/node_modules/async/lib/async.js:706:43
<br> at /Users/luisandrade/code/slothy_/back/node_modules/express-jwt/node_modules/async/lib/async.js:167:37
<br> at Immediate._onImmediate (/Users/luisandrade/code/slothy_/back/node_modules/express-jwt/node_modules/async/lib/async.js:1206:34)
<br> at runCallback (timers.js:810:20)
<br> at tryOnImmediate (timers.js:768:5)
<br> at processImmediate [as _immediateCallback] (timers.js:745:5)
</pre>
</body>
</html>但我想要这个
{
error: 'some message'
}发布于 2019-08-05 19:14:54
将其放在创建服务器的位置上方。
app.use(function (err, req, res, next) {
if (err.name === 'UnauthorizedError') {
res.status(401).send('invalid token...');
}
});您还可以通过使用next(e)来处理其中的其他错误,其中e是来自try catch的错误。
https://stackoverflow.com/questions/55754675
复制相似问题