什么是 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 对象中,可以通过该对象来访问它们。以下是使用方法的示例:
app.use((req, res) => { console.log(req.session.foo); // 输出 "bar" req.session.foo = "baz"; res.send('Hello World!'); });
在上面的例子中,我们打印了名为 "foo" 的 session 变量,并将其设置为值 "baz"。
用 Session 实现身份验证
Session 可以用于实现基于 Session 的身份验证。下面是一个简单的身份验证实现,仅检查用户名和密码是否匹配:
-- -------------------- ---- ------- ------------------ ----- ---- -- - ----- - --------- -------- - - --------- -- --------- --- ------------ -- -------- --- ------------- - ------------------------- - ----- ------------- --- ----------------- - ---- - ----------------- --------------- - --- ---------------------- ----- ---- -- - -- --------------------------- - ----------------- -- --- ---------- -------- - ---- - ---------------- ---------- - ---
在这个例子中,我们在登录请求中设置 authenticated session 变量,在需要身份验证的路由处理程序中检查它是否为 true。
总结:Session 是一种非常有用的机制,用于跟踪用户会话,并且可以轻松地在 Express.js 中使用。此外,您可以通过结合身份验证来增加安全性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/651ab01c95b1f8cacd287d48