Login 登录如何工作?
好的,你们在表单中输入用户名和密码,点击“OK”按钮。然后,将数据传输到服务器端,并检查用户数据库是否存在该用户。然后它返回用户id。接下来呢? 数据是否保存在cookies中? 这是否意味着,每点击一个链接,你就可以再次登录网站 我是说Login 登录如何工作?,login,Login,好的,你们在表单中输入用户名和密码,点击“OK”按钮。然后,将数据传输到服务器端,并检查用户数据库是否存在该用户。然后它返回用户id。接下来呢? 数据是否保存在cookies中? 这是否意味着,每点击一个链接,你就可以再次登录网站 我是说 你点击网站上的链接 浏览器将您重定向到该页面 网站检查你的cookies 从Cookie中获取站点用户名和密码 站点检查数据是否有效(通过连接到数据库) 向您显示页面 这是正确的吗?您可能应该使用会话,但这正是它的要点。这样数据就不会意外地保留下来 我的意思是
这是正确的吗?您可能应该使用会话,但这正是它的要点。这样数据就不会意外地保留下来 我的意思是,对于我在家里的简单网站,我就是这样做的。但它仍然是本地托管的,所以安全性保证是垃圾 哦,当你点击另一个链接时,不需要检查数据库——浪费了太多的时间
当用户单击注销页面时,继续使会话无效。。。就这样。:) 几乎正确。您很少在每次请求时都访问数据库。您通常设置一个带有到期日期的cookie,并将用户会话和信息保存在内存中。因此,每次发出请求时,如果用户未通过身份验证,则对其进行身份验证,生成并向其发送一个cookie,比如说,过期5小时。因此,在接下来的5个小时内,每当一个请求与该cookie一起传入时,您都相信该用户是经过身份验证的有效用户,并且您不必检查数据库
这不是每个网站的做法,也不是管理会话和Cookie的唯一方法,但我认为它是使用最广泛的方法。通常,应用程序利用浏览器和web服务器之间建立的会话,并注意到该会话是“经过身份验证的”。“会话”是HTTP的内置功能。如果浏览器处于关闭状态,或经过一段时间后,会话将自动关闭。如果用户显式注销,应用程序会将会话标记为未经身份验证 并非每个网页和/或web服务器都以相同的方式工作,因此在不知道您在谈论哪个网站的情况下回答您的问题是不可能的。在会话中我应该存储什么?会话应该包含用户对象(用户名、名、名称、您需要的所有相关信息)。这样,当您需要个性化您的网站时,您可以通过从会话中提取名字来显示“Hello Mike”。将用户信息放在会话中最简单,您不必担心用户禁用cookie。此外,如果您使用会话,当用户关闭浏览器时,它将自动终止会话,而如果您使用cookie,您可能需要执行进一步的检查。为什么是会话而不是cookie?Cookie具有过期日期,并且不会在每次关闭浏览器时删除。Cookie可能会被欺骗。这个问题是可以克服的,但它需要更多的工作。但我到底应该在cookies中存储什么呢?用户名和解密密码?但在不检查用户数据库的情况下,我如何信任这些数据?为什么在请求之间需要他的密码?您应该只存储显示页面所需的有关用户的信息。通常是用户名、用户id、一些配置文件信息等。。。除非您使用ssl通信,否则您永远不能100%相信数据是正确的。有人可以“嗅探”连接并窃取用户cookie(称为会话劫持)。如果这能让你感觉更安全的话,即使是facebook也会发送未加密的cookies。