我似乎不清楚“资源所有者密码流程”和“客户端凭据流程”之间的区别。前者似乎将密码凭据转发到服务器进行验证,而后者也以某种方式与服务器进行身份验证,但规范没有指定此处使用什么方法。此流程是为 cookie session 设计的吗?该规范并没有真正提供明确的用例。
来自 OAuth 2.0 规范:
+---------+ +---------------+
| | | |
| |>--(A)- Client Authentication --->| Authorization |
| Client | | Server |
| |<--(B)---- Access Token ---------<| |
| | | |
+---------+ +---------------+
Figure 6: Client Credentials Flow
和
+----------+
| Resource |
| Owner |
| |
+----------+
v
| Resource Owner
(A) Password Credentials
|
v
+---------+ +---------------+
| |>--(B)---- Resource Owner ------->| |
| | Password Credentials | Authorization |
| Client | | Server |
| |<--(C)---- Access Token ---------<| |
| | (w/ Optional Refresh Token) | |
+---------+ +---------------+
Figure 5: Resource Owner Password Credentials Flow
最佳答案
客户端凭据流程仅需要 client_id 和 client_secret。资源所有者流程需要用户密码。
客户端凭证流允许应用程序在不涉及用户上下文的情况下获取 token 。
关于oauth-2.0 - "Resource Owner Password Flow"和 "Client Credentials Flow"之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22077487/