ランダムなユーザー名とパスワードを生成してユーザーアカウントを自動的に生成したい場合、ユーザーは自動的にログインします(ユーザーはユーザー名/パスワードを知らず、ブラウザはセッションCookieのみを保存します)。Passport JSでユーザーサーバー側を認証する方法は?
パスポートはミドルウェアとして機能するので、作成したばかりのユーザーをどのように認証できますか?または、何とか私のapp.post('/login')
ルートにリダイレクトしてそれらの変数を送信する方が良いでしょうか? (しかし、何らかの形でそれらをブラウザに送信して、サーバに送り返すだけでは、非常に安全で効率的なようには見えません)。
app.get('/signup', function(req, res) {
if(req.isAuthenticated()) { res.redirect('/'); }
else {
var today = new Date();
var weekDate = new Date();
weekDate.setDate(today.getDate() + 7);
var key1 = Math.random().toString();
var key2 = Math.random().toString();
var hash1 = crypto.createHmac('sha1', key1).update(today.valueOf().toString()).digest('hex');
var hash2 = crypto.createHmac('sha1', key2).update(weekDate.valueOf().toString()).digest('hex');
var newUser = new models.User({
username: hash1,
password: hash2,
signupDate: today,
accountStatus: 0,
expirationDate: weekDate,
});
newUser.save(function(err) {
if(err) {}
console.log("New user created.");
//HOW CAN I PASS USERNAME AND PASSWORD ARGUMENTS???
passport.authenticate('local')();
res.redirect('/login');
})
}
});
ありがとうございます!私はそれがPassportのドキュメンテーションでより明白であったことを望みます。 –
私は同意する、それは非常に隠されていると私はまたそれを見つけるのに苦労して覚えている。 – rdrey