【问题标题】:Reading Authentication information from web browser stored in sessions从存储在会话中的 Web 浏览器读取身份验证信息
【发布时间】:2015-10-03 18:36:27
【问题描述】:

问题场景:

我正在做一个项目,我需要读取 Web 浏览器用来保持客户端登录到网站的会话变量。

例如

我在 facebook 和 twitter 等上登录... 当我去 facebook 或 twitter 登录页面时,服务器会通过读取存储在我的浏览器或服务器中的会话变量自动带回家。

问题陈述:

我真正想做的是,从网络浏览器获取会话变量,然后存储在本地文件(电子邮件和密码)中。

【问题讨论】:

  • 将会话数据存储到本地文件后打算做什么?也许有更好的选择将其存储在文件中。通常不建议乱用服务器发布的身份验证cookie。
  • 您是在谈论通常存储在 cookie 中的会话 ID 吗?如果是这样,那不会告诉你太多,它肯定不会给你电子邮件和密码
  • 我需要知道服务器如何识别浏览器手动登录到他们的网站

标签: javascript session browser session-variables session-state


【解决方案1】:

首先Javascript 无法控制会话。它由后端语言处理。如果您想以任何持久性使用/存储 Session,那么您需要升级到任何后端语言,例如 Java/Python/PHP/Nodejs 等。

因此,您无法从网页客户端语言访问会话。它由服务器维护。会话管理通常通过cookies 的应用程序进行管理。每个浏览器都支持会话管理。

使用客户端语言,您可以访问 cookie,但在其中找不到 username/password

Wiki details 描述了更多的会话管理。


HTTPSession是java中用于存储和获取session的接口。

HttpSession session = request.getSession();
session.setAttribute("object", object);

【讨论】:

    【解决方案2】:

    因此,在这种情况下,网站通常(尽管并非总是)处理登录凭据的方式是这样的。

    1. 我去网站登录
    2. 如果我的凭据验证服务器会为我的浏览器分配一个 cookie,其中包含一个映射到我的服务器/数据库上的值的令牌
    3. 当收到请求时,我会检查该 cookie 值,如果它具有有效的令牌,则呈现与该用户匹配的适当内容。

    这可能会根据您所在的平台以及是否有内置机制来执行此操作而改变。

    【讨论】:

      猜你喜欢
      • 2019-08-08
      • 2019-06-28
      • 2023-04-04
      • 1970-01-01
      • 2018-06-13
      • 1970-01-01
      • 1970-01-01
      • 2015-03-09
      • 2019-08-28
      相关资源
      最近更新 更多