使用__Host前缀设置Cookie被浏览器拦截问题排查
问题原因及解决办法
你遇到的问题是因为**__Host-前缀的Cookie有严格的强制安全规则**,你的Cookie违反了其中核心一条:
- __Host-前缀的Cookie绝对不能设置
Domain属性,而你当前的Cookie里明确指定了Domain=localhost,这直接触发浏览器的安全校验逻辑,导致Cookie被拒绝创建。 - 另外再确认两个必须满足的条件(你已经做到了,再明确下):
- 必须设置
Secure属性 - 必须设置
Path=/
- 必须设置
解决步骤
- 移除Cookie配置中的
Domain字段,不要指定任何Domain值 - 保留
__Host-前缀、Secure、Path=/、HttpOnly、SameSite=Strict这些属性
修改后的Cookie格式示例:
__Host-refresh_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2OTkwMDQ1MTAsImlhdCI6MTY5OTAwMzA3MCwic3ViIjoiMSJ9.8VDKxv2skkIK5cjiFgEWutaVJcepzgYadWSFjUqEPqc; Path=/; Expires=Fri, 03 Nov 2023 09:41:50 GMT; Max-Age=1440; HttpOnly; Secure; SameSite=Strict
调整后浏览器就能正常创建这个安全Cookie了。
内容的提问来源于stack exchange,提问作者user63898
相关产品推荐
相关产品推荐

