我正在使用 nodejs 和 passport js 使用 passport-jwt 策略进行授权。这是我的代码。它适用于 JWT 令牌。但是当没有提供令牌时,它会以文本格式给出“未经授权”的响应。我想自定义它并以 json 格式制作。
请求未通过身份验证时如何返回自定义的 json 响应。
router.get('/users',passport.authenticate('jwt', {session:false}), UserController.get);
这是策略定义。
var opts = {};
opts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();
opts.secretOrKey = CONFIG.jwt_encryption;
passport.use(new Strategy(opts, async function(jwt_payload, done){
let err, user;
[err, user] = await to(User.findById(jwt_payload.user_id));
if(err) return done(err, false);
if(user) {
return done(null, user);
}else{
return done(null, false);
}
}));