java - 在具有 Java REST 后端的 iPhone 应用程序中使用第 3 方 oauth2 服务

标签 java rest oauth-2.0

我正在开发一个为 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/

相关文章:

java - 如何在Java中不使用任何循环重命名2个文件

ios - OAuth 2.0 ios 快速实现

swift - OAuthSwift 的自定义 header

Java SSL DH key 对生成 - 质数错误

java - Display.getDefault().asyncExec 给出 InspirationTargetException

java - 在应用程序模块中使用库模块的依赖项

java - 为什么在搜索多个元素时无法在 Selenium 中按 id 找到一个元素

javascript - 在 Javascript 中通过 GET 请求处理 JSON

java - 如何在java中的笔记本电脑之间创建adhoc网络?

rest - 牛仔邮政处理程序