gpt4 book ai didi

api - 在 OAuth 2 中有授权码时为什么需要访问 token ?

转载 作者:行者123 更新时间:2023-12-03 21:34:50 24 4
gpt4 key购买 nike

在 OAuth 2 中,客户端应用程序为访问 token 交换授权代码。使用访问 token ,应用程序可以进行 API 调用。但是,我真的不明白为什么 OAuth 2 有这一步;这似乎是一个额外的步骤。

我能想到的一个原因是授权码是通过客户端的重定向调用给出的,因此它有可能被破坏,因此它是短暂的;而访问 token 是服务器到服务器的。

确实如此,但还有应用程序发送的 secret API key 。那为什么不能用授权码做同样的事情呢?

假设没有访问 token ,只有授权代码。那么即使有人获得了授权码,如果 OAuth 服务器也检查了 key 和授权码,他们也将无法做任何事情。

它应该允许 OAuth 服务器:

  • 确保请求是由正确的应用程序发出的(验证)
  • 确定授予(授权)哪些类型的权限
  • 最佳答案

    在 JavaScript 客户端或在浏览器中运行的 Web 应用程序的情况下,需要能够直接获取 access_token(隐式授权类型)。因为,根据可用于保存客户端 secret 的选项,这些客户端并不安全。为 access_token 交换授权码需要客户端 ID 和密码。

    这两种授权类型的存在是为了在实现身份验证时提供各种级别的安全性。

    如果 API 提供的资源非常敏感,那么您最多需要安全性,这由授权代码流提供。在此授权类型中,您在授予对资源的访问权限之前验证客户端(服务器端 API 或移动客户端)和资源所有者(用户)。 access_token 甚至不会暴露给浏览器/用户(因为被盗的 token 可以访问资源),因此提供了高度的安全性。此流程很复杂,涉及到授权服务器的更多往返行程,但提供了更多安全性。

    如果您不需要资源的那种安全性,您可以使用隐式授权类型,浏览器/用户可以访问 token 。此流程很简单,只需到授权服务器一次。它不会验证客户端。无需使用浏览器保存客户端 secret 。

    希望这是有道理的。请让我知道,如果你有任何问题。

    谢谢,
    索玛。

    关于api - 在 OAuth 2 中有授权码时为什么需要访问 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37450112/

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