gpt4 book ai didi

javascript - Oauth 服务器在成功或错误时重定向,使用 HTTP 重定向还是 Javascript?

转载 作者:行者123 更新时间:2023-11-28 10:27:58 26 4
gpt4 key购买 nike

我通过身份验证的所有 Oauth 提供商都会将您重定向到一个类似“谢谢,重定向您...”的页面,并使用 javascript 将您重定向到提供的redirect_uri。我本以为返回 HTTP 重定向会更简单、更快。为什么总是这样?

最佳答案

302 的 Location header 根据 HTTP 1.1看起来像这样:

Location       = "Location" ":" absoluteURI

absoluteURI 根据URI Generic Syntax不包括片段标识符。带有片段的称为URI-reference:

URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]   

@levik 的问题中描述了详细信息: URL Fragment and 302 redirects 。我现在正在艰难地学习它,但要点是带片段的 302 似乎不适用于 IE8。

使用 Javascript 可能是更可靠的方法,因为您应该通过片段传递访问 token 。

编辑:我现在知道 IE8 发生了什么。 IE 确实尊重 Location header 中的片段标识符,但它忽略源 URI 中的片段标识符。我的重定向 URL 是 http://example.com/oauth,我自动重定向到 httpshttps://example.com/oauth.

  1. OAuth 重定向至 http://example.com/oauth#access_token=foo
  2. 我的服务器重定向到 https://example.com/oauth

在第 1 步和第 2 步之间,IE8 丢弃了片段标识符,而其他一些浏览器则重定向到 https://example.com/oauth#access_token=foo

所以真正的答案是 302 是可以的,只要您不在 URL 上多次使用它即可。

关于javascript - Oauth 服务器在成功或错误时重定向,使用 HTTP 重定向还是 Javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3869197/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com