【发布时间】:2019-08-18 00:29:59
【问题描述】:
据我了解:客户端密码在 OAuth1 中很重要,但在 OAuth2 中不再那么重要了。
但 Google 和 Twitter 等公司似乎需要客户端密码才能获得访问令牌。
从授权服务器的角度来看(例如 Google、Twitter、Github...):在这些情况下,哪些情况下推荐/(必需)客户端密钥?
- 从授权码中获取访问令牌。
- 使用刷新令牌获取新的访问令牌。
- 通过访问令牌获取资源。
仅要求它通过授权码获取访问令牌就足够了,还是应该在有人使用访问令牌获取资源时也提交?
TLDR: 在我的情况下:请求“通过授权码获取访问令牌”和请求“通过以下方式获取新的访问令牌和刷新令牌”需要客户端密钥刷新令牌”。当客户端尝试通过访问令牌获取资源时,我是否还应该要求提供客户端秘密(要求它)?
【问题讨论】:
-
在 OAuth2 中不再相关。 RFC6749
-
客户端密码的问题在于您无法真正将其隐藏在 SPA 或移动应用程序中。你可以在这里阅读更多相关信息:oauth.com/oauth2-servers/client-registration/client-id-secret
-
那是从 2012 年开始的,并没有说明它不是必需的。它实际上取决于授权类型。隐式登录流程不需要密码。混合登录流程需要密码。
-
@Alpha 如果您的问题与此有关,也许您应该改写您的问题,我在您的问题中看不到任何地方。您已经说过所有 Oauth2 都不需要秘密。
标签: oauth oauth-2.0 access-token refresh-token