Koa 面试题 目录

Koa 中如何删除 Cookie?

推荐答案

在 Koa 中,可以通过设置 Cookie 的过期时间为过去的时间来删除 Cookie。具体代码如下:

本题详细解读

1. 删除 Cookie 的原理

在 HTTP 协议中,Cookie 是通过响应头 Set-Cookie 来设置的。要删除一个 Cookie,可以通过设置该 Cookie 的过期时间为一个过去的时间,这样浏览器在接收到这个响应后会自动删除该 Cookie。

2. Koa 中的实现

Koa 提供了 ctx.cookies.set 方法来设置 Cookie。要删除一个 Cookie,可以将该 Cookie 的值设置为 null,并通过 expires 选项将其过期时间设置为 new Date(0),即 1970 年 1 月 1 日(Unix 纪元时间),这样浏览器会认为该 Cookie 已经过期并删除它。

3. 代码示例

  • cookieName:要删除的 Cookie 的名称。
  • null:将 Cookie 的值设置为 null,表示删除该 Cookie。
  • expires: new Date(0):将 Cookie 的过期时间设置为过去的时间,确保浏览器删除该 Cookie。
  • httpOnly: true:可选参数,表示该 Cookie 只能通过 HTTP 请求访问,不能通过 JavaScript 访问。

4. 注意事项

  • 删除 Cookie 时,pathdomain 选项必须与设置 Cookie 时一致,否则浏览器可能无法正确删除该 Cookie。
  • 如果 Cookie 是通过 Secure 标志设置的,那么在删除时也需要设置 Secure 标志。
纠错
反馈