我試圖在/register
表單上提交POST後立即進行認證和登錄用戶。理想情況下,我希望用戶能夠註冊,然後立即重定向到儀表板,而無需再次輸入憑據。新用戶註冊後立即通過護照認證
我的服務器正在使用Passport 0.1.17,本地策略配置爲使用電子郵件地址和密碼進行登錄。當前的代碼是:
app.post('/register', function(req, res) {
// attach POST to new User variable
var registerUser = new User({ email: req.body.email, password: req.body.password, name: req.body.name });
// save registerUser Mongo
registerUser.save(function(err) {
if(err) {
console.log(err);
} else {
console.log('registerUser: ' + registerUser.email + " saved.");
}
});
// here is where I am trying to authenticate and then redirect
passport.authenticate('local', { failureRedirect: '/login', failureFlash: true }),
res.redirect('/dashboard');
});
我該如何重構此代碼以保存新用戶,然後進行身份驗證並最終重定向到儀表板?
在此先感謝!
使用'req.logIn'方法在註冊後直接進行身份驗證。 – moka
感謝您引用'req.logIn',這是我以前不知道的。你能提供更具體的代碼嗎?我在上面的問題的最後一個註釋之後嘗試了以下內容,但它不起作用:'req.login(registerUser,function(err){if(err){return next(err);} return res.redirect '/ dashboard'); });' – surfearth
您需要提供用於反序列化用戶的詳細信息,通常它是存儲在會話中的用戶的ID。 – moka