目前我处于以下情况:
我使用以下技术创建了用户身份验证系统:
expressjs(使用会话和cookie)
mysql(保留用户名和密码)
用于持久会话存储的mongodb
目的是创建一个将用户ID存储在cookie中的系统,并根据允许访问权限进行访问。
第一个问题。如果我正确理解会话是如何工作的,那么每次用户访问我的网站(登录或不登录)时,她/他将使用快速会话机制创建新的会话ID,该机制将存储在req.sessionID中。
现在的问题。在登录页面上:
用户输入用户名/密码
我向mysql服务器发出请求,确认用户名/密码。现在,从我在网上找到的例子中,做一个简单的用户身份验证的解决方案就是做这样的事情:
req.session.user =用户名
然后检查是否设置了req.session.user,并基于允许访问用户等。
但是,对于我的网站,用户的用户名是用户的电子邮件。以纯文本格式存储用户的详细信息是否安全?即使是出于身份验证目的,是否可以安全使用?
还有哪些其他选择?我可以在使用bcrypt存储到数据库之前加密用户名,并使用它吗?
提前致谢。
A
答案 0 :(得分:0)
在幕后快速检查会话密钥(客户端可用的会话的唯一部分,您可以证明Chrome devtools的此检查资源选项卡)与当前会话匹配。如果有人试图伪造会话密钥,Express会注意到这一点。实际上,Express使用Connect中间件,因此您可能希望浏览此更多详细信息http://www.senchalabs.org/connect/session.html