2

我正在使用 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);
        }
    }));

4

0 回答 0