私は最近、json Webトークンに関するいくつかの調査を行ってきました。私が集めたことから、その大きな強みの一つは無国籍者です。ユーザーを認証するために必要なものはすべてリクエストに付いてくるので、記事が多数あるほど、「リクエストごとにデータベースにヒットする」必要はありません。json webトークン、passport-jwtとそのベリファイ機能
しかし、私は間違っていない場合は、passport-jwt
ためのドキュメントはちょうどそれを、彼らはそれぞれのリクエストに応じてデータベースをヒット。つまり、パスポート認証が必要な各要求に対してです。
passport.use(new JwtStrategy(opts, function(jwt_payload, done) {
//this is a database call
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
}
});
}));
私は、そうでない場合は、この関数が呼び出されないであろうと、ユーザが401 unauthorized
を取得し、この関数が呼び出された時点で、トークンがすでにを確認されているという印象の下にありました。
なぜユーザーのデータベースをチェックするのですか?このコードはドキュメントにあるので、私はデータベースをチェックすることで同じことをしていますが、本当に必要ですか?なぜ私はちょうどこれをしてはならないのですか?
passport.use(new JwtStrategy(opts, function(jwt_payload, done) {
//this is a database call
done(null, {id: jwt_payload.sub})
}));