2010-04-01 112 views
2

我使用的是OAuth与谷歌数据api。我们只为授权用户提供门户。因此,当用户登录时,如果他们正在访问日历页面,系统会询问他们是否要将日历与Google日历同步。如果是,他们将被重定向进行身份验证。用户授予访问权限后,Google会将OAuth_Token附加到回调网址。回调网址是门户网站日历页面的回调网址。此网址的查询字符串选项已加密。但是当重定向发生时,它会返回到url的登录页面。Oauth回调问题

网址就像是查询字符串的http://aaa.xyz.com/(encrypted一部分)和组oauth_token被授权后,该网址将成为查询字符串的

http://aaa.xyz.com/(encrypted部分)&的oauth_token。所以用户在重定向之后看到登录页面而不是原始页面。我应该如何在代码中处理这个问题。

回答

1

当用户登录到您的站点时,请确保用户会话“状态”存储在会话中,以便当来自Google OAuth的重定向返回到页面时,您检查用户是否处于“状态”在会话中找到。如果是,返回上一页用户访问,否则转到登录。

这就是我为银行网站实施SSO时所做的。

+0

我想这是一个很好的选择,当你使用servlets时,不幸的是我没有使用servlets。 – yogsma 2010-04-05 14:10:09

+0

你在使用什么框架? – 2010-04-05 14:12:11

+0

我正在研究自定义休眠类框架。 – yogsma 2010-04-05 15:18:15

1

您可以随时使用带外OAuth,途径oauth_callback ='oob'

这将不会重定向到您的页面,但会显示验证程序,以便用户可以将其复制/粘贴到您的应用程序中。

这对您的用户来说更加麻烦,但是如果访问令牌过期了足够长的时间,它就不会那么糟糕。

+0

你如何使用谷歌数据api你需要设置分数? – yogsma 2010-04-05 15:24:16

+0

我的意思是范围*(拼写错误) – yogsma 2010-04-05 15:46:12

+0

作用域是一个不同的oauth参数AFAIK – 2010-04-05 17:06:24