我正在开发一个服务于iPhone应用程序的Java REST服务器。现在我们必须与oauth2协议公开的第三方服务集成。这对我来说是新的,所以我一直在阅读和编写一些“概念证明”代码但是我有一个大问题或者我从根本上不理解某些东西......
我创建了一个简单的网页,其中“用XXX登录”按钮,用户在网页视图中看到该按钮。当他点击它时,第三方服务的登录页面打开,他可以批准我的应用程序,他们将在何时将用户重定向到我指定的URL,并将授权代码作为参数。此URL指向我服务器上的REST服务。
问题是,此网址必须与我将应用程序用于其服务时设置的网址完全相同。由于我正在运行REST服务器,因此无法知道在重定向到服务器时我们正在讨论哪个用户(没有会话)。我想用一些查询或路径参数进行识别,但他们不允许这样做。
这对你有意义还是以错误的方式实现?我现在可以想象的唯一可能的解决方案是在cookies的帮助下,但我真的不喜欢这个......
答案 0 :(得分:1)
是的,这确实有意义。你有几个不同的选择,尝试其中一个:
state
parameter来传输一些用户ID。提供者必须通过重定向将其返还给您。