我正在深入研究 Spring OAuth,发现一些相互矛盾的信息。
具体来说,this tutorial声明 /oauth/token
端点在将刷新 token 授予客户端应用程序之前处理用户名和密码。相比之下,Spring OAuth Developer Guide提到了 /oauth/authorize
和 /oauth/token
端点,但没有具体说明它们是如何工作的。
/oauth/authorize
是否 100% 执行 username/password/nOtherFactors
检查,然后向 /oauth/token
端点发出信号向客户端发送刷新 token ,以便客户端随后将刷新 token 发送到 /oauth/token
端点?
还是全部由 /oauth/token
端点处理?
/oauth/authorize
和 /oauth/token
之间的关系对于不同的授权类型是否不同?怎么样?
最佳答案
根据 OAuth 2.0 规范,授权和 token 端点有不同的用途。
授权端点是资源所有者(用户)登录并授予客户端授权的地方(例如:在浏览器中运行的 Web 应用程序或在移动设备上运行的应用程序)。这通常用于资源所有者的用户代理(例如:浏览器)被重定向到身份服务器(授权服务器)进行身份验证的场景。资源所有者的用户代理将直接访问访问 token 。
token 端点是客户端(例如:服务器端 API 或移动应用程序)调用以交换授权代码、客户端 ID 和客户端密码以获取访问 token 的位置。在这种情况下,用户代理只提供了一个授权码,不能直接访问访问 token 。客户端是一个受信任方,可以从授权服务器访问客户端 ID 和客户端密码(这就是我提到服务器端 API 作为客户端的原因)。
请阅读 this有更好解释的文章。
关于spring -/oauth/authorize 和/oauth/token 在 Spring OAuth 中如何交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36944986/