【问题标题】:Javascript how to reference an Express-Session on the clientJavascript 如何在客户端引用 Express-Session
【发布时间】:2017-07-17 05:57:17
【问题描述】:

在我的服务器中,我创建了一个快速会话。我想在其中存储用户是否已登录的检查。我不知道如何在代码的非服务器端访问这个快速会话。

基本上,如果用户已登录,我将编辑用户看到的页面。我只会在用户登录或未登录时才知道编辑页面,这需要我访问快速会话。

【问题讨论】:

    标签: javascript node.js express-session


    【解决方案1】:

    您不能直接从客户端访问会话数据。它仅存储在服务器端。会话 cookie 仅包含会话 ID,不包含实际会话状态。

    要访问登录状态,您有几个选择:

    1. 当您呈现页面时,在页面中插入一个 Javascript 变量,其中包含已登录状态,可能还有已登录用户的用户 ID。然后,您的客户端 JS 可以简单地检查该变量以了解状态。如果您使用任何类型的模板引擎来呈现您的页面,这很容易做到。在某些高级标签(例如页面中的标签)上设置loggedIn 类名也很常见。这允许 CSS 根据用户是否登录自动调整(例如,隐藏登录按钮)。

    2. 您完全可以检查会话 cookie 是否存在。如果不存在会话 cookie,则用户无法登录。会话 cookie 存在这一事实并不一定意味着用户已登录。这可能是旧的 cookie,甚至可能是来自不同的 cookie用户。但是,没有 cookie 意味着没有用户登录。

    3. 您可以查询服务器并询问它。您必须指定您要询问的用户 ID,然后服务器可以检查当前会话 cookie 是否有效并属于该特定用户。

    就个人而言,我可能会对选项 #1 做一些变体。

    【讨论】:

      【解决方案2】:

      您无法在客户端(例如浏览器)访问快速会话数据。 它只能在服务器端访问。

      注意会话数据不保存在 cookie 本身中,只是会话 ID。会话数据存储在服务器端。

      您需要添加一些端点来检查会话以获取有关用户状态的信息。

      【讨论】:

        猜你喜欢
        • 2021-02-04
        • 2020-07-21
        • 2022-08-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-02
        • 2019-03-20
        • 1970-01-01
        相关资源
        最近更新 更多