我正在使用连接- Mysql-session 将会话存储在 db 中。 现在,我的问题是, 我如何添加包含浏览器代理和 ip- address 的用户数据来检查会话是否有效? 我如何获取该信息? 我如何检查它是否匹配?
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( / );
}
这是安全的,还是你看到 任何风险与此吗?