gpt4 book ai didi

oauth-2.0 - OAuth2 : query string vs. 片段

转载 作者:行者123 更新时间:2023-12-03 20:42:25 26 4
gpt4 key购买 nike

刚刚注意到,在 OAuth2 中,当请求的授权类型为:“code”时,回调将其包含在查询字符串参数中(在“?”之后)。但是,当授权是“ token ”时,它作为片段传递(在“#”之后)。
这看起来是规范的一部分(https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-26#section-4.2)
这种决定背后的理由是什么?
谢谢,
彼得

最佳答案

当您的浏览器被网站重定向到带有查询参数的 URL 时,查询字符串也是您的浏览器现在发送给主机的请求的一部分。片段仅由您的 Web 浏览器在本地评估,不包含在对主机的请求中。

如果是 授权码授予 ,您通常有一个 Web 应用程序,它直接与提供者对话,将数据发送到主机正是您所需要的:

  • Web 应用程序将您的浏览器重定向到您登录的提供商。
  • 提供程序现在告诉您的浏览器 Web 应用程序的回调 URL 并附加授权代码。此代码必须发送到 Web 应用程序,因此它作为查询参数包含在对回调 URL 的请求中。
  • 现在,Web 应用程序本身在后台与提供者对话,并使用授权代码验证他确实被允许向提供者查询访问 token 。

  • 如果是 隐式授权 ,您通常会在浏览器中直接运行一些 Javascript 应用程序。无需向主机传递任何授权码,在大多数情况下也无需向主机发送访问 token ,因为浏览器中的 JS 可以直接与提供者对话。这样你可以例如在服务器上创建一个网站,该网站在用户同意的情况下使用从另一个提供商查询的信息,其中服务器永远不会访问用户的任何 secret 数据。 (如果是受信任的网站,则不会将访问 token 发送到服务器。)

    关于oauth-2.0 - OAuth2 : query string vs. 片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14707345/

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