Passport jwt 与 Passport 本地会话

Far*_*oro 5 session node.js express passport.js

我使用 Express-session 和 Passport 库。

在本例中,我想创建一个 React SPA 网站,但我对正确的系统安全性感到困惑。

我看到有很多方法可以进行身份​​验证,这让我感到困惑。

护照中有2种身份验证:Passport-jwtPassport-local

因为我使用 Express 会话,所以我选择使用护照本地。

我还需要使用passport-jwt吗?对于像这样插入标头以指示用户已登录的每个请求?

const opts = {};
opts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();
opts.secretOrKey = keys.passport.secretOrPrivateKey;

    passport.use(new JwtStrategy(opts,(jwt_payload,done)=>{
        let queryFindAdmin = 'select * from admin where id = ?';
        db.query(queryFindAdmin,[jwt_payload.id],(err,result)=>{
            if(err) return done(err,null);
            if(result.length > 0){
                console.log(result);
                return done(null, result[0]);
            }
            return done(null, false);
        })
    }));
Run Code Online (Sandbox Code Playgroud)

iqb*_*125 2

如果我理解正确的话,如果您正在使用会话,那么根据定义,您不需要 JWT 令牌。JWT 令牌是会话的替代方案。