所以我正在尝试使用快速服务器passport
和passport-jwt
使用快速服务器的身份验证技术。这是我一直在使用的代码
const JwtStrategy = require("passport-jwt").Strategy;
const ExtractJwt = require("passport-jwt").ExtractJwt;
const User = require("../models/user");
const opts = {};
opts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();
opts.secretOrKey = "secret";
module.exports = passport => {
passport.use(
new JwtStrategy(opts, (jwt_payload, done) => {
User.findById(jwt_payload.id,(err,user)=>{
if(err){
return done(err,false);
}
if(user){
done(null,user);
}
else{
done(null,false);
}
})
})
)
};
因此,使用此护照授权的全部目的是尽量减少访问数据库的次数,对吧?
但是在这段提取token后的代码中,通过findById
查找用户是否在数据库中的方法访问数据库,那么如果每次认证请求都访问数据库,那么这一切有什么意义呢?
我很确定我说错了什么,非常感谢澄清此事的一些帮助。