我已经实现了oauth工作流程以获取访问权限并刷新令牌。 OAuthAuthorizationServerProvider和AuthenticationTokenProvider的自定义类已经就位并且可以正常工作。
我正在尝试添加“单点登录”功能(以通过我们的系统提供对第三方的访问),但是我不确定应该如何完成操作或是否缺少某些功能。
这是我要实现的工作流程:
我在第3步和第4步之间丢失了一些内容。当验证用户时,您会获得一个access_token,但您应该使用授权码将用户重定向到第三方url,以便第三方系统可以获取access_token。那是我不明白的。
答案 0 :(得分:0)
好的,所以工作流程是这样的(如果我没记错的话!):
客户端需要在您身边进行某种设置,因为您需要知道将授权代码发送到哪个URL。
用户转到您的授权页面并输入其用户名/密码。如果一切顺利,您将发出授权代码,然后将用户重定向回其URL,并在URL中传递代码。
此客户端URL如下所示:https://www.client.co.uk/authcode_endpoint?code=blah
目前,您的工作已经完成。
接下来,客户端将在他们的系统上收到此代码(因为您调用了他们的URL),现在可以向您发出另一个呼叫,以将代码交换为令牌,然后重复该过程。
您将它们发送回另一个URL:https://www.client.co.uk/authtoken_endpoint?token=blah
现在,他们可以发出更多呼叫以执行所需的操作。
类似这样的事情应该很简单,您基本上就拥有了一个应用程序与应用程序进行通信。必须已经有库为您提供了这种工作流程。