Passport jwt和res.render

时间:2017-10-25 19:15:37

标签: node.js express jwt passport.js

这是我第一次使用passport-jwt。我配置了策略,一切正常。我将令牌发送到客户端并使用fromAuthHeaderAsBearerToken()方法从头中提取它。但我遇到了一个问题,如果Authorization标头为空或未设置,我想呈现一个特定页面。我怎么能这样做,除了设置failureRedirect:'/ specific-page'属性?

策略代码非常标准:

JwtStrategy(jwtOptions, (payload, done) => {
User.findOne({fmn_id: payload.data.id})
.then( (obj) => {
    if(!obj) throw new Error('No user with such id');
    done(null, obj);
})
.catch( (err) => {
    res.render('specificPage'); //In case of error I want to render this page. Current code doesn't work.
    done(null, err);
});

}

1 个答案:

答案 0 :(得分:0)

您可以使用res.render('path_to_template')呈现特定模板 假设您的视图目录中有一个名为myfile.ejs的模板,那么您可以通过res.render('myfile')

进行渲染

或者您也可以使用res.redirect('/route');

将用户重定向到其他路线