使用服务器端设置cookie,服务器删除它们,仍在后续请求中

Using server side set cookies, with server deleting them, still in subsequent requests

我有一个奇怪的问题。我有一个 API 具有三个端点 /ping、/login 和 /logout 端点。 /login 设置 token cookie,/logout 删除 token cookie,/ping 只是 returns “pong”。

端点的工作方式如下:

POST /登录 有效负载:用户名=bob&密码=孩子名

returns一个set-cookie: token=abcd; Path=/

获取/注销 与 cookie: token=abcd header returns一个set-cookie: token=""; Path=/; Max-Age=0

获取/ping returns 'pong' 在 text/plain

当用户使用 /login 登录时,token cookie 被设置,并且它在浏览器的 document.cookie 中可见。当用户使用 /logout 注销时,token cookie 从 document.cookie 中消失,但它仍然存在于对 /ping 的任何后续请求中。

我不明白为什么 cookie 在对域的后续请求中持续存在(仅在 Chrome 中,根据 chrome 开发工具和服务器日志),即使服务器“已删除” cookie,javascript 显示 cookie 已删除。 Firefox 按预期运行,但基于 Chromium 的浏览器是当今的主流浏览器。

原来我在我的 /api 路径下缓存并限定了一个重复的令牌,它覆盖了我的 / 路径 cookie。