Session cookie 在 Postman 中成功运行,而不是 Chrome
Session cookies working successfully in Postman, not Chrome
这是我第一次弄乱 session 饼干,我很难过。如果有任何帮助,我将不胜感激!
我要注意:
- 我在 Chrome
本地遇到了所有这些问题
- 我使用 Postman 接收 cookie 和验证请求完全没有问题。是 Chrome 没有设置 cookie。
服务器
我的服务器是 运行 在 http://localhost:7000/
我通过设置 Set-Cookie
header 从服务器向客户端发送 cookie:
val cookie = """jwt=$token; Path=/; Domain=localhost; Max-Age=86400; Expires=Thu, 19 Aug 2021 12:20:23 GMT; SameSite=Strict;"""
ctx.header("Set-Cookie", cookie)
我也设置了cors:
it.header(Header.ACCESS_CONTROL_ALLOW_CREDENTIALS, "true")
it.header(Header.ACCESS_CONTROL_ALLOW_METHODS, "*")
it.header(Header.ACCESS_CONTROL_ALLOW_HEADERS, "*")
前端
我的 F.E 在 http://localhost:3000/
上是 运行
下面是授权 request/response 的样子:
这是其中一个失败请求的样子。注意没有设置 cookie:
我还注意到 Chrome 的 Cookies in use
视图中没有显示 cookie:
我的理解
据我了解,我可以使用 SameSite=Strict
,因为 FE 和 BE 都是 运行 在本地主机上。
当我投入生产时,FE 和 BE 将不在同一个域中。然后,我必须使用 SameSite=None; Strict
。这是正确的吗?
另外,我知道我也可以包含 HttpOnly
,但我现在不用于调试目的。
我的理解正确吗?
谢谢!
在此先感谢您提供的任何帮助,非常感谢!
我建议您尝试将 allow-origin 设置为 * 并检查结果:
访问控制允许来源:*
它将允许来自任何地址的请求,不安全但可以帮助您找到问题的根源
我没有正确设置 credentials: include
这是我第一次弄乱 session 饼干,我很难过。如果有任何帮助,我将不胜感激!
我要注意:
- 我在 Chrome 本地遇到了所有这些问题
- 我使用 Postman 接收 cookie 和验证请求完全没有问题。是 Chrome 没有设置 cookie。
服务器
我的服务器是 运行 在 http://localhost:7000/
我通过设置 Set-Cookie
header 从服务器向客户端发送 cookie:
val cookie = """jwt=$token; Path=/; Domain=localhost; Max-Age=86400; Expires=Thu, 19 Aug 2021 12:20:23 GMT; SameSite=Strict;"""
ctx.header("Set-Cookie", cookie)
我也设置了cors:
it.header(Header.ACCESS_CONTROL_ALLOW_CREDENTIALS, "true")
it.header(Header.ACCESS_CONTROL_ALLOW_METHODS, "*")
it.header(Header.ACCESS_CONTROL_ALLOW_HEADERS, "*")
前端
我的 F.E 在 http://localhost:3000/
上是 运行下面是授权 request/response 的样子:
这是其中一个失败请求的样子。注意没有设置 cookie:
我还注意到 Chrome 的 Cookies in use
视图中没有显示 cookie:
我的理解
据我了解,我可以使用 SameSite=Strict
,因为 FE 和 BE 都是 运行 在本地主机上。
当我投入生产时,FE 和 BE 将不在同一个域中。然后,我必须使用 SameSite=None; Strict
。这是正确的吗?
另外,我知道我也可以包含 HttpOnly
,但我现在不用于调试目的。
我的理解正确吗?
谢谢!
在此先感谢您提供的任何帮助,非常感谢!
我建议您尝试将 allow-origin 设置为 * 并检查结果:
访问控制允许来源:*
它将允许来自任何地址的请求,不安全但可以帮助您找到问题的根源
我没有正确设置 credentials: include