推荐答案
在 Fastify 中使用 Cookie 非常简单。你可以通过 fastify-cookie
插件来管理 Cookie。以下是一个简单的示例:
-- -------------------- ---- ------- ----- ------- - -------------------- ------- ---- --- -- -- -------------- -- -------------------------------------------- -- -- ------ -------------------------- --------- ------ -- - --------------------------- -------------- - ------- -------------- ----- ---- ------- ----- --------- ----- ------- ---- -- - ---- --- ------ - -------- ------- ---- -- --- -- -- ------ -------------------------- --------- ------ -- - ----- -------- - ------------------------- ------ - -------- -- --- -- ----- -------------------- ----- -- - -- ----- - ----------------------- ---------------- - ---
本题详细解读
1. 安装 fastify-cookie
插件
首先,你需要安装 fastify-cookie
插件:
npm install fastify-cookie
2. 注册插件
在 Fastify 应用中注册 fastify-cookie
插件:
fastify.register(require('fastify-cookie'));
3. 设置 Cookie
你可以使用 reply.setCookie
方法来设置 Cookie。该方法接受三个参数:
- name: Cookie 的名称。
- value: Cookie 的值。
- options: 可选的配置项,如
domain
、path
、secure
、httpOnly
、maxAge
等。
reply.setCookie('myCookie', 'cookieValue', { domain: 'example.com', path: '/', secure: true, httpOnly: true, maxAge: 3600 // 1 hour });
4. 获取 Cookie
你可以通过 request.cookies
对象来获取客户端发送的 Cookie:
const myCookie = request.cookies.myCookie;
5. 删除 Cookie
要删除一个 Cookie,你可以将 maxAge
设置为 0
或者使用 reply.clearCookie
方法:
reply.clearCookie('myCookie');
6. 安全性考虑
- secure: 设置为
true
时,Cookie 只能通过 HTTPS 传输。 - httpOnly: 设置为
true
时,Cookie 无法通过 JavaScript 访问,防止 XSS 攻击。 - sameSite: 可以设置为
Strict
、Lax
或None
,用于防止 CSRF 攻击。
通过以上步骤,你可以在 Fastify 中轻松地管理和使用 Cookie。