Chrome 不返回 IdentityServer 身份验证 cookie

问题描述 投票:0回答:1

我正在调试使用 IdentityServer4 的旧版 ASPNETCore 身份验证系统的问题。这似乎是 Chrome(和 Edge)如何处理 cookie 的问题。

当登录页面发布用户的凭据时,登录端点会通过 302 重定向响应同一服务器上的回调 URL (/connect/authorize/callback)。此响应包含 3 个新 cookie:

  • .AspNetCore.Identity.Application:路径=/;安全的;同一站点=宽松;仅http
  • idsrv.session:路径=/;安全的;同一站点=无
  • idsrv:过期= 2024 年 4 月 30 日星期二 14:29:35 GMT;路径=/;安全的;同一站点=无;仅http

使用 Firefox,浏览器会向回调 URL 发送请求。该请求包含所有 3 个 cookie,并且一切正常。

但是对于 Chrome 或 Edge,对回调 URL 的请求不包含 idsrv cookie,因此请求失败并且我的用户被发送回登录页面。

为什么 Chrome 不包含它刚刚收到的 cookie?

我尝试在 idsrv cookie 上设置 SameSite=Lax,但这没有效果。

google-chrome cookies identityserver4
1个回答
0
投票

您使用的是 HTTP 还是 HTTPS?

如果您在浏览器中使用HTTP,那么cookie将会丢失。我在博客中介绍了如何解决此问题:https://nestenius.se/2023/10/09/debugging-cookie-problems/

现在您必须始终将 HTTPS 与 OpenID-Connect 结合使用。

© www.soinside.com 2019 - 2024. All rights reserved.