使用expressjs

时间:2017-04-13 17:38:45

标签: node.js authentication express passport.js

首先,如果我提出一个明显愚蠢的问题,我提前道歉。

我目前有一个护照身份验证策略设置,它运行正常。实施如下。

身份验证策略(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']

我该如何实现?

1 个答案:

答案 0 :(得分:1)

好吧显然我不够努力, 除了serializeUser和deserializeUser之外,我没有必要对我当前的逻辑进行任何更改。并使用:

passport.authenticate(['SOME_OTHER_STRATEGY', 'jwt']) 
是的。