2017-04-13 101 views
0

首先,如果我問一個明顯愚蠢的問題,我提前道歉。Passportjs多重身份驗證策略外部文件與expressjs

我目前有護照認證策略設置,它工作正常。具體實施如下。

認證策略(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

好吧,顯然我沒有努力去努力, 我不必對serializeUser和deserializeUser之外的當前邏輯做任何改變。只需使用:

passport.authenticate(['SOME_OTHER_STRATEGY', 'jwt']) 

不是這樣。