Fastify 面试题
目录

Fastify 中如何使用 Session?

· 约 4 分钟读完 · 第 74 / 127 章

推荐答案

在 Fastify 中使用 Session 可以通过 fastify-session 插件来实现。以下是一个简单的示例代码:

本题详细解读

1. 安装依赖

首先,你需要安装 @fastify/session 和 @fastify/cookie 插件:

2. 注册插件

在 Fastify 中,Session 依赖于 Cookie,因此你需要先注册 @fastify/cookie 插件,然后再注册 @fastify/session 插件。

  • secret: 用于签名 session ID 的密钥,建议使用至少 32 个字符的随机字符串。
  • cookie.secure: 在生产环境中应设置为 true,以确保 cookie 仅通过 HTTPS 传输。

3. 使用 Session

在路由处理函数中,你可以通过 request.session 对象来访问和设置 session 数据。

  • 设置 Session: 你可以直接在 request.session 上设置属性。

  • 获取 Session: 你可以通过 request.session 来获取之前设置的 session 数据。

4. 注意事项

  • Session 存储: @fastify/session 默认使用内存存储 session 数据,这在生产环境中可能会导致内存泄漏。建议使用外部存储(如 Redis)来存储 session 数据。
  • 安全性: 在生产环境中,确保 cookie.secure 设置为 true,并且使用 HTTPS 来传输 cookie。

5. 扩展阅读

通过以上步骤,你可以在 Fastify 中轻松地使用 Session 来管理用户会话。