1

目前,我有一个基于 GWT 的应用程序“/app.htm”

它显示一个 openId 登录按钮,该按钮执行

Window.Location.assign("/openidServlet?return=/app.htm")

这个 servlet 准备了一些东西来调用 google 的 openid 页面,然后返回返回 url。这是可行的,但 app.html 也会显示谷歌地图,并且在重新加载时很重。

我想在新窗口(一种弹出窗口)中执行此操作以避免重新加载“app.htm”

在一个完美的世界中,当 openid 窗口关闭时,它会向 app.htm 发送一些内容以说“准备好,再次进行 loginRpc 查询”

我已经尝试过这样做,Frame但我得到了

Refused to display document because display forbidden by X-Frame-Options

使用 gwt2.4 和 NO gae

4

1 回答 1

1

您想使用OpenID UI Extension。JavaScript 中有可用的示例代码,应该相对容易移植到 GWT(或者更容易包装,使用 JSNI)。

基本上,它用于window.open()在弹出窗口中启动 OpenID 签名过程,并监视窗口对象window.open()com.google.gwt.user.client.Window#openreturn_to如果您愿意,页面可以包含一个自动关闭窗口的脚本)。
当弹出窗口关闭时,您可以重试您的请求,如果您检测到用户仍未登录,则可能会再次启动签名过程。

他们似乎没有使用它,但我想你可以从return_to页面使用(并通过 JSNIwindow.opener公开一些回调方法: https ://developers.google.com/web-toolkit/doc/latest /DevGuideCodingBasicsJSNI#calling )

于 2012-06-11T11:18:38.000 回答