【问题标题】:Creating sessions without express创建没有 express 的会话
【发布时间】:2018-02-21 06:44:29
【问题描述】:

如果没有 express 之类的框架,我如何在 Node.js 中创建和管理会话?

提到在节点中管理会话的大多数问题都是使用 express 来执行此操作,但我想知道如何在不使用 express 的情况下做到这一点。

【问题讨论】:

    标签: node.js session server-side


    【解决方案1】:

    这有点像重新发明轮子。但有时为了学习目的,重新发明轮子很有用。

    会话处理主要通过 cookie 完成(有时也编码在 URL 中)。在此过程中,服务器向客户端发送一个唯一标识符(cookie)并创建一个包含您存储在会话中的数据的本地文件,并在下一个请求中检查唯一标识符是否存在,如果存在,它将与所有保存的如果文件匹配,它将选择文件并从该文件中读取数据,然后您将能够使用该会话。如果文件或唯一 ID 不存在,它将创建一个具有该唯一 ID 的空文件,并将其在 set-cookie 标头中发送给客户端以识别下次会话。

    您可以按照以下步骤处理会话:

    1. 收到请求后,首先检查请求中的 cookie 以找到您的会话 cookie。
    2. 如果存在,则从中读取唯一 ID,并检查具有该名称(唯一标识符)的文件是否存在。
    3. 如果文件存在,则从文件中读取对象并将其存储在名为 mysession 的局部变量中(自己命名)。
    4. 如果文件或会话 cookie 不存在,请使用随机生成的唯一标识符创建一个空文件。并借助 set-cookie 标头将此唯一标识符以会话 cookie 的形式发送给客户端。

    在向客户端发送任何数据之前,请执行上述所有操作。

    为您对该变量所做的每次修改,使用 mysession 变量的内容写入会话文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-07
      • 1970-01-01
      • 2018-06-28
      • 2020-11-16
      • 1970-01-01
      • 2015-10-04
      • 2012-11-01
      • 1970-01-01
      相关资源
      最近更新 更多