登录如何工作?

时间:2011-02-10 22:47:33

标签: login

好吧,你在表单中键入用户名和密码,点击“确定”按钮。然后数据进入服务器端并检查用户数据库(如果该用户存在)。然后它返回用户ID。接下来呢? 该数据保存在Cookie中? 这是否意味着,对于每个点击的链接,网站再次登录您的网站?

我的意思是,

  1. 您点击网站上的某个链接
  2. 浏览器将您重定向到该页面
  3. 网站检查您的Cookie
  4. 网站从Cookie中获取用户名和密码
  5. 站点检查是数据有效(通过连接到数据库)
  6. 向您显示页面
  7. 这是对的吗?

4 个答案:

答案 0 :(得分:7)

  1. 用户输入凭证。
  2. 系统验证凭据。
  3. 验证成功后,服务器会将用户对象保存到会话中。
  4. 系统从会话中获取用户信息。
  5. 系统显示网页。
  6. Tadaa !! :)

    <强>更新

    再添加一点......

    1. 用户访问安全网页。
    2. 系统检查会话是否包含用户对象。
    3. 如果会话中存在用户对象,则允许用户访问该页面。
    4. 如果用户对象不存在,请将用户重定向到登录页面。
    5. 您无需在会话中存储用户密码。事实上,它非常沮丧。检查以确保会话中存在用户对象就足够了。

      当用户点击退出页面时,继续使会话无效......就是这样。 :)

答案 1 :(得分:3)

几乎正确。每次请求都很少访问数据库。您通常会设置一个有效期限的cookie,并将用户会话和信息保存在内存中。因此,每次发出请求时,如果用户未经过身份验证,则对他进行身份验证,生成并向他发送一个cookie,例如5h到期。因此,在接下来的5个小时内,只要有cookie请求,您就相信该用户是经过身份验证的有效用户,您无需检查数据库。

并不是每个网站都能做到这一点,也不是管理会话和Cookie的唯一方法,但我认为它是使用最广泛的网站。

答案 2 :(得分:0)

你应该使用会话,但这几乎是它的要点。这样数据就不会意外地持续存在。

我的意思是,对于我家里的简单网站,我就是这样做的。但它仍然在本地托管,因此保证安全性是废话。

哦,无论何时点击其他链接都无需查看数据库 - 浪费了太多时间。

答案 3 :(得分:0)

通常,应用程序利用浏览器和Web服务器之间建立的会话,并记下该会话是“经过身份验证的”。 “session”是HTTP的内置功能。如果浏览器已关闭,或经过一段时间后,会话将自动关闭。如果用户执行显式注销,则应用程序会将会话标记为未经过身份验证。