首页 > 解决方案 > 在同一个流程中可以有 2 种不同类型的授权,client_credentials 和 authorization_code?随机存取存储器

问题描述

嗨,我想问一下是否有可能在同一个 API 中有 2 种类型的授权,对于 2 个单独的端点,一个使用 client_credentials,另一个使用 authentication_code?代码在 RAML 中。

标签: oauth-2.0oauth

解决方案


简短的回答:是的,这是可能的。

API 应该只关心从您的身份验证提供程序返回的访问令牌 (JWT) 和声明(用户 ID 等),而不是身份验证方法。(除非是业务需求)

用户可以通过登录流程对自己进行身份验证,并且接收到授权码,然后将其交换为访问令牌。这是authorization_flow本质上的。
或者可以使用客户端 ID + 机密对请求进行身份验证,并使用接收到的访问令牌(client_credentials流)。此访问令牌不包含用户声明(因为它通常在机器对机器通信中完成)。

因此,除非 API 依赖于访问令牌中存在的用户声明,否则您如何检索它并不重要,只要它有效即可。


推荐阅读