我正在对Spring OAuth进行深入研究,我发现了一些相互矛盾的信息。有人可以澄清一下吗?
具体而言,this tutorial表示/oauth/token
端点在向客户端应用授予刷新令牌之前处理用户名和密码。相比之下,Spring OAuth Developer Guide提及了/oauth/authorize
和/oauth/token
个端点,但没有详细说明它们的工作原理。
/oauth/authorize
执行100%username/password/nOtherFactors
检查,然后发信号通知/oauth/token
端点向客户端发送刷新令牌,以便客户端将刷新令牌发送到/oauth/token
端点?
或者全部由/oauth/token
端点处理?
/oauth/authorize
和/oauth/token
之间的关系对于不同的授权类型是否有所不同?怎么样?
答案 0 :(得分:12)
根据OAuth 2.0规范,授权和令牌端点具有不同的用途。
授权端点是资源所有者(用户)登录并授予客户端授权的地方(例如:在浏览器中运行的Web应用程序或在移动设备上运行的应用程序)。这通常用于资源所有者的用户代理(例如:浏览器)重定向到身份服务器(授权服务器)进行身份验证的情况。资源所有者的用户代理可以直接访问访问令牌。
令牌端点是客户端(例如:服务器端API或移动应用程序)调用以交换访问令牌的授权码,客户端ID和客户端密钥的位置。在此方案中,仅为用户代理提供授权代码,不能直接访问访问令牌。客户端是可信方,可以从授权服务器访问客户端ID和客户端密钥(这就是为什么我提到服务器端API作为客户端)。
请阅读有更好解释的this文章。