oauth-2.0 - 在同一个流程中可以有 2 种不同类型的授权,client_credentials 和 authorization_code?随机存取存储器
问题描述
嗨,我想问一下是否有可能在同一个 API 中有 2 种类型的授权,对于 2 个单独的端点,一个使用 client_credentials,另一个使用 authentication_code?代码在 RAML 中。
解决方案
简短的回答:是的,这是可能的。
API 应该只关心从您的身份验证提供程序返回的访问令牌 (JWT) 和声明(用户 ID 等),而不是身份验证方法。(除非是业务需求)
用户可以通过登录流程对自己进行身份验证,并且接收到授权码,然后将其交换为访问令牌。这是authorization_flow
本质上的。
或者可以使用客户端 ID + 机密对请求进行身份验证,并使用接收到的访问令牌(client_credentials
流)。此访问令牌不包含用户声明(因为它通常在机器对机器通信中完成)。
因此,除非 API 依赖于访问令牌中存在的用户声明,否则您如何检索它并不重要,只要它有效即可。
推荐阅读
- java - 用非密封类扩展密封类有什么意义?
- python - 如何从getRandom中删除换行符?
- python - 覆盖一个没有被显式调用的类
- r - 为什么 ggplot 不显示箱线图的误差线?
- symfony - Symfony:在服务中显式定义容器
- mongodb - 如何检查 MongoDB 中的更改流开始位置是否有足够的 oplog 历史记录?
- python - 使用python中的熊猫转换Dataframe中的时区
- flutter - Google SignIn with firebase in flutter Exception PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null)
- java - 无法在 Selenium webdriver 中使用 Xpath 或 CssLocator 获取列表中的搜索结果
- python-3.x - Python 3 请求和标头顺序