快速入门:如何在 Express.js 中使用 Session?

阅读时长 4 分钟读完

什么是 Session?

Session 是一种用于跟踪用户会话的机制,它在 web 应用程序中广泛使用。Session 数据存储在服务器端,然后可供应用程序的其他部分访问,通过保持会话状态,服务器通常可以为用户提供更好的体验。

在 Express.js 中启用 Session

要在 Express.js 应用程序中启用 Session 支持,需要安装和配置 express-session 模块。可以通过以下命令来安装它:

npm install express-session

接下来,在 app.js(或任何你正在使用的主文件)中导入和使用 Session:

-- -------------------- ---- -------
----- ------- - -------------------
----- ------- - ---------------------------

----- --- - ----------

-----------------
    ------- --------------
    ------- ------
    ------------------ ------
----

这里创建了一个名为 app 的 Express 实例。我们调用 app.use() 方法将 express-session 中间件添加到应用程序中。传递给该方法的选项对象包含三个属性:

  • secret: 随机字符串,用于加密 session。
  • resave: 设置为 false,表示即使 session 没有修改,也重新保存它。
  • saveUninitialized: 是否保存未初始化的会话,建议设置为 false。

访问 Session

现在我们已经在我们的应用程序中启用了 Session 支持,那么如何使用它呢?Session 存储在 req.session 对象中,可以通过该对象来访问它们。以下是使用方法的示例:

在上面的例子中,我们打印了名为 "foo" 的 session 变量,并将其设置为值 "baz"。

用 Session 实现身份验证

Session 可以用于实现基于 Session 的身份验证。下面是一个简单的身份验证实现,仅检查用户名和密码是否匹配:

-- -------------------- ---- -------
------------------ ----- ---- -- -
    ----- - --------- -------- - - ---------
    -- --------- --- ------------ -- -------- --- ------------- -
        ------------------------- - -----
        ------------- --- -----------------
    -
    ---- -
        ----------------- ---------------
    -
---

---------------------- ----- ---- -- -
    -- --------------------------- -
        ----------------- -- --- ---------- --------
    -
    ---- -
        ---------------- ----------
    -
---

在这个例子中,我们在登录请求中设置 authenticated session 变量,在需要身份验证的路由处理程序中检查它是否为 true。

总结:Session 是一种非常有用的机制,用于跟踪用户会话,并且可以轻松地在 Express.js 中使用。此外,您可以通过结合身份验证来增加安全性。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/651ab01c95b1f8cacd287d48

纠错
反馈