我正在尝试将PassportJs用于多种类型的用户(每个用户都有不同的模型).我做错了什么



我正在尝试使用多种类型的用户(每种用户都有不同的模型)将PassportJs与express一起使用。当我只用一种类型的用户使用它时,还可以,但是当我添加第二种用户时,它不起作用。知道吗?

// Configuring Passport
var passport = require ('passport');
var LocalStrategyAdmin = require ('passport-local').Strategy;
var LocalStrategyClient = require ('passport-local').Strategy;
var adminModel = require ('./models/adminModel');
var clientModel = require ('./models/clientModel');
var session = require ('cookie-session');
app.use (session ({keys: [secretKey1, secretKey2]}));
app.use (passport.initialize ());
app.use (passport.session ());

passport.use (new LocalStrategyAdmin (adminModel.authenticate ()));
passport.use (new LocalStrategyClient (clientModel.authenticate ()));
passport.serializeUser (adminModel.serializeUser ());
passport.deserializeUser (adminModel.deserializeUser ());
passport.serializeUser (clientModel.serializeUser ());
passport.deserializeUser (clientModel.deserializeUser ());

我修好了

  1. 我必须为每个本地策略指定不同的名称
  2. 我必须根据用户的类型(在我的情况下是客户端或管理员)进行序列化/反序列化。

我必须为每个本地策略指定不同的名称我必须根据用户的类型(在我的情况下是客户端或管理员)进行序列化/反序列化。

您还想使用单独的护照实例

var Passport = require ('passport');
var passportAdmin = new Passport.Passport();
var passportClient = new Passport.Passport();

最新更新