Login 登录如何工作?

Login 登录如何工作?,login,Login,好的,你们在表单中输入用户名和密码,点击“OK”按钮。然后,将数据传输到服务器端,并检查用户数据库是否存在该用户。然后它返回用户id。接下来呢? 数据是否保存在cookies中? 这是否意味着,每点击一个链接,你就可以再次登录网站 我是说 你点击网站上的链接 浏览器将您重定向到该页面 网站检查你的cookies 从Cookie中获取站点用户名和密码 站点检查数据是否有效(通过连接到数据库) 向您显示页面 这是正确的吗?您可能应该使用会话,但这正是它的要点。这样数据就不会意外地保留下来 我的意思是

好的,你们在表单中输入用户名和密码,点击“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。