私はトークンの有無にかかわらずルータにアクセスできます。ユーザーがトークンを持っている場合は、私にこのよう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')
}
});
マイアプリ:私はトークンなし/profile
にアクセスしようとした場合
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
}
});
}));
を、正常に動作します。私もトークンなしでそれにアクセスしたいと、私はTOKEを提供している場合、私のユーザーを与えるヘッダー内のトークンとアクセス/profile
しようが私にnot loggedIn
を与える しかし、。
ps:すでにpassport.authenticate('jwt')
を使用してテストされています。私がトークンを与えれば私にアクセスさせてください。