spring -/oauth/authorize 和/oauth/token 在 Spring OAuth 中如何交互?

标签 spring oauth oauth-2.0 spring-security-oauth2 spring-oauth2

我正在深入研究 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/

相关文章:

php - Azure AD OAuth 访问 token 请求:::400 - 错误请求

Android 谷歌 API Java 客户端 com.google.api.client.auth.oauth2.draft10

spring 数据源中的 java.lang.NullPointerException

java - 永远不会调用 onFlushDirty Hibernate Interceptor 方法

java - 对于长度超过 30 个字符的字符串,正则表达式模式匹配需要很长时间

java - 服务端如何返回 JWT token 给客户端?

javascript - 如何使用express js路由器解决CORS重定向?

Spring Boot/Angular 2 - 如何处理 HTML5 url?

oauth - 编写hipchat客户端: HipChat Authentication

iphone - 异步数据连接 iOS