Chrome 80 处理 HTTP 302 重定向和删除查询字符串
Chrome 80 handling HTTP 302 redirect and dropping query string
我正在尝试对通过 Auth0 进行身份验证的 SPA 应用程序进行故障排除,方法是首先重定向到他们的站点以提供凭据,然后重定向到他们站点上的 /callback 路径,令牌包含在 URL 查询字符串中,最后到我的应用程序静态文件站点上的 /callback 路径。就在昨天,我在 DevTools 的网络选项卡中注意到 Chrome 获取 302,其位置 header 设置为我的应用程序的 /callback 路径并包括查询字符串,但是当 Chrome执行重定向,它会丢弃查询字符串。似乎这种行为可能是最近才开始的,昨天是断断续续的,但今天是一致的。由于 302 重定向从 auth0.com 转到我应用程序的域,这是一些新的跨站点安全功能吗?
以下是请求轨迹:
POST to https://my-app.auth0.com/login/callback with the token, etc. in the body.
Response is HTTP 302 with a location header like: https://myapp.com/callback#access_token=...
GET to https://myapp.com/callback
<-- 没有查询字符串!
我在 Ubuntu Linux 上以隐身模式使用 Chrome 版本 80.0.3987.149(官方构建)(64 位)。任何帮助表示赞赏!
URL 的 #access-token... 部分不是查询字符串,而是 URL 片段。浏览器保留它并将其应用于返回的页面内容。您可以从页面上的 JavaScript 访问此片段。这是 Auth0 用于单页应用程序的标准方法。
我正在尝试对通过 Auth0 进行身份验证的 SPA 应用程序进行故障排除,方法是首先重定向到他们的站点以提供凭据,然后重定向到他们站点上的 /callback 路径,令牌包含在 URL 查询字符串中,最后到我的应用程序静态文件站点上的 /callback 路径。就在昨天,我在 DevTools 的网络选项卡中注意到 Chrome 获取 302,其位置 header 设置为我的应用程序的 /callback 路径并包括查询字符串,但是当 Chrome执行重定向,它会丢弃查询字符串。似乎这种行为可能是最近才开始的,昨天是断断续续的,但今天是一致的。由于 302 重定向从 auth0.com 转到我应用程序的域,这是一些新的跨站点安全功能吗?
以下是请求轨迹:
POST to https://my-app.auth0.com/login/callback with the token, etc. in the body.
Response is HTTP 302 with a location header like: https://myapp.com/callback#access_token=...
GET to https://myapp.com/callback
<-- 没有查询字符串!
我在 Ubuntu Linux 上以隐身模式使用 Chrome 版本 80.0.3987.149(官方构建)(64 位)。任何帮助表示赞赏!
URL 的 #access-token... 部分不是查询字符串,而是 URL 片段。浏览器保留它并将其应用于返回的页面内容。您可以从页面上的 JavaScript 访问此片段。这是 Auth0 用于单页应用程序的标准方法。