私はconnect-mysql-sessionを使用してセッションをdbに保存しています。今私の質問は、セッションが有効かどうかを確認するためにブラウザエージェントとIPアドレスを含むユーザーデータを追加するにはどうすればよいですか?その情報を取得するにはどうすればよいですか?そして、それが一致するかどうかを確認するにはどうすればよいですか?
users.login(credentials,function(err, results) {
//On errors
if (err) {
res.render(routes.index, {
title: 'Login'
});
//On success
} else if (results[0]) {
//Set session data and redirect to start page
req.session.userdata = results[0];
req.session.userdata.email = req.body.email_login;
req.session.is_logged_in = true;
res.redirect('/start');
//Wrong credentials
} else {
req.flash('warning','Wrong password or login');
res.render('index', {
title: 'Login'
});
}
});
アップデート:
これをセッションに追加しました:
req.session.ip = req.connection.remoteAddress;
req.session.useragent = req.headers['user-agent'];
そして私の認証ミドルウェアでそれをチェックしてください:
if(req.session.userdata && req.session.is_logged_in === true && req.session.ip === req.connection.remoteAddress && req.session.useragent === req.headers['user-agent']) {
next();
} else {
res.redirect('/');
}
これは安全ですか、それともこれにリスクがありますか?私はそれについて別の方法で行くべきですか?