当前位置:  开发笔记 > 编程语言 > 正文

路线可用或不带令牌JWT + PASSPORT

如何解决《路线可用或不带令牌JWT+PASSPORT》经验,为你挑选了0个好方法。

我想我可以使用或不使用令牌访问路由器.如果用户有令牌,请给我req.user

像这样:

router.get('/profile', function(req, res) {
if(req.user) { // or if (req.isAuthenticated())
 res.send('logged')
} else {
 res.send('not loggedIn')
}
});

我的应用:

var JwtStrategy = require('passport-jwt').Strategy,
ExtractJwt = require('passport-jwt').ExtractJwt;
var opts = {}
opts.jwtFromRequest = ExtractJwt.fromAuthHeader();
opts.secretOrKey = 'sh';
passport.use(new JwtStrategy(opts, function(jwt_payload, done) {
User.findOne({id: jwt_payload.sub}, function(err, user) {
    if (err) {
        return done(err, false);
    }
    if (user) {
        done(null, user);
    } else {
        done(null, false);
        // or you could create a new account
    }
});
}));

如果我尝试访问/profile没有令牌,工作正常.但是,当尝试使用/profile标题中的标记访问时,会给我not loggedIn

即使没有令牌我也想访问它,如果我提供了一个toke,请给我用户.

ps:已经passport.authenticate('jwt')在路线和工作中使用过.如果我给令人让我访问,如果不给我未经授权.

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有