Sau khi xem qua tài liệu của passport.js (kudo cho Jared), tôi hiểu rằng mình đã làm sai hầu hết mọi thứ.
-
Đã tạo hai localStrategies
passport.use('userLocal', new LocalStrategy(User.authenticate())); passport.use('clientLocal', new LocalStrategy(Client.authenticate()));
và để xác thực,
passport.authenticate('userLocal')(req, res, function () {
res.redirect('/profile');
});
and
passport.authenticate('clientLocal')(req, res, function () {
res.redirect('/client');
});
-
Đã sử dụng mô-đun hộ chiếu (l =không sử dụng mô-đun passport-local-mongoose) cho serializeUser và deseriealizeUser.
passport.serializeUser(function(user, done) { done(null, user); });
passport.deserializeUser(function(user, done) { if(user!=null) done(null,user); });
Toàn bộ lược đồ người dùng (đối tượng) hiện được lưu trữ trong yêu cầu và có thể được truy cập thông qua bất kỳ tuyến nào của bạn.
Hy vọng nó sẽ giúp những người khác gặp vấn đề tương tự.