oAuth2成功回调后,将用户重定向到以前的位置:怎么做?

时间:2014-05-21 10:37:27

标签: google-app-engine google-oauth

我们有一个应用程序,它有各种不同页面需要身份验证;这个auth使用谷歌的oAuth2流程,目前正在正常工作:在我们收到谷歌回调端点的回调后,我们无法知道在成功后将用户重定向到哪里,因为我们不知道他们第一次启动身份验证过程时所在的页面。

相反,我们会为所有成功请求重定向到同一页面;这对用户来说很不利,因为他们可能会登陆他们没有请求的页面,并且必须返回到他们想要的部分。

我找不到任何人在谈论如何执行此操作,所有Google示例只是按照我们的操作进行操作,并将用户重定向到标准网址。

我们已经尝试将我们想要的重定向编码作为我们最初传递给Google的回调网址上的查询参数进行编码,但由于该网址不再完全符合“允许的”网址,因此会失败。我们在Google API控制台中设置的一个(并且只有一个框可以添加一个)。

显然我们的回调方法会在重定向用户之前检查从它们返回的任何数据(即确保它是重定向用户的有效位置) - 那么,有没有安全的方法呢?理想情况下,无需将URL放在会话上..

提前致谢!

3 个答案:

答案 0 :(得分:0)

您可以将用户重定向到具有javascript函数的页面,以在localcache中读取在身份验证之前访问的最后一个url。 您也可以使用cookie。 此解决方案可以与您网站上的面包屑小部件结合使用。

答案 1 :(得分:0)

当您完成OAuth工作流程时,您可以将fromUrl存储到内存缓存中并在此网址上重定向。 如果未设置memcache值,则重定向到主页。

答案 2 :(得分:0)

官方技术是设置返回回调网址的状态参数