首先,如果我提出一个明显愚蠢的问题,我提前道歉。
我目前有一个护照身份验证策略设置,它运行正常。实施如下。
身份验证策略(authentication.js):
const passport = require("passport");
const passportJWT = require("passport-jwt");
const params = {
//Params here
};
module.exports = function LocalStrategy() {
let strategy = new Strategy(params, function (payload, done) {
//Logic here
});
passport.use(strategy);
return {
initialize: function () {
return passport.initialize();
},
authenticate: function () {
return passport.authenticate("jwt", {
session: false
});
}
};
};
在路线中使用:
const localAuth = require('./authentication/LocalStrategy')();
app.get('/test', localAuth.authenticate(), (req, res) => {
res.json(req.isAuthenticated());
});
在server.js文件中
const localAuth = require('./authentication/LocalStrategy')();
app.use(localAuth.initialize());
我打算在一条路线中使用多种身份验证策略,我发现了implementation。但是我没有将认证策略写在同一个server.js中,而是希望将策略写在外部文件中(在我的情况下是authentication.js)并将路由中的策略引用为
passport.authenticate(['SOME_OTHER_STRATEGY', 'jwt']
我该如何实现?
答案 0 :(得分:1)
好吧显然我不够努力, 除了serializeUser和deserializeUser之外,我没有必要对我当前的逻辑进行任何更改。并使用:
passport.authenticate(['SOME_OTHER_STRATEGY', 'jwt'])
是的。