Я хочу, чтобы я мог использовать маршрутизатор с маркером или без него. Если пользователь имеет маркер, чем дать мне req.user
Маршрут доступен с маркером или без него JWT + PASSPORT
Как это:
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
Я хочу, чтобы получить доступ к нему даже без маркеров и, если я предоставил затяжку, дай мне пользователь.
ps: Уже проверено с использованием passport.authenticate('jwt')
в пути и работает. Если я дам токен, позвольте мне получить доступ, если не дать мне несанкционированный доступ.