我正在开发一个为 iPhone 应用程序提供服务的 Java REST 服务器。现在我们必须与 oauth2 协议(protocol)公开的第三方服务集成。这对我来说是新的,所以我一直在阅读和编写一些“概念验证”代码,但我有一个大问题,或者我根本不理解某些东西......
我制作了一个简单的网页,其中包含用户在网页 View 中看到的“使用 XXX 登录”按钮。当他单击它时,第三方服务的登录页面将打开,他可以批准我的应用程序,此时他们会将用户重定向到我使用授权代码作为参数指定的 URL。此 URL 指向我的服务器上的 REST 服务。
问题是这个 URL 必须与我在应用我的应用程序为其服务时设置的 URL 完全相同。由于我正在运行 REST 服务器,因此当重定向到我的服务器时(没有 session ),我无法知道我们正在谈论哪个用户。我想用一些查询或路径参数来进行此识别,但他们不允许。
这对您来说有意义还是我以错误的方式实现了这一点?我现在能想象的唯一可能的解决方案是借助cookie,但我不太喜欢那个......
最佳答案
是的,这确实有道理。您有几种不同的选择,请尝试其中之一:
- 存储带有某个用户 ID 的 Cookie,并在重定向后将其读出
- 使用
state
parameter用于传输某些用户 ID 的授权请求。提供商需要在其重定向中将其返回给您。
关于java - 在具有 Java REST 后端的 iPhone 应用程序中使用第 3 方 oauth2 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11929397/