/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