在GWT框架中显示Google登录页面
Showing Google login page in GWT Frame
我正在开发一个使用Google登录的GWT应用程序。为此,我有一个Java servlet,它基于UserService.createLogin()函数将用户重定向到Google登录页面。可以通过"/login"URL访问所讨论的Java servlet。以前,每当用户单击应用程序中的登录按钮时,我都会打开如下窗口:
Window.open("/login", "Bla", "");
然后,当登录过程成功时(UserService.getCurrentUser() != null),我在Java servlet中执行如下重定向,
response.sendRedirect("/success.html");
success.html文件包含一个简单的行,其中onLoad()执行以下操作,
<body onLoad="window.opener.loginSucceededCallback();window.close();"/>
这会导致原始窗口关闭并调用JavaScript回调函数'loginSucceededCallback',我在调用windows .open()的GWT类中注册了该函数。
我在一个单独的窗口中显示Google登录,因为我不希望重新加载GWT应用程序。但是,如果我能将谷歌登录页面嵌入GWT应用程序中,而不是在弹出窗口(或单独的选项卡)中显示它,那就更好了。为此,我考虑使用Frame()或NamedFrame()对象,它们允许显示外部页面。我可以在这样的框架中成功显示Google登录页面,但是当成功登录(在Google)时,我无法获得success.html中的JavaScript代码来正确调用GWT代码中的回调函数。没有明确的"窗口"或"窗口"。开瓶器的目标,至少我认为。我的JavaScript知识也是有限的,没有一个现有的论坛帖子让我看到了光明…
有没有人知道如何将这些代码片段链接在一起,以便GWT客户端注意到服务器端的成功登录?我可以用FormPanel和Frame()做点什么吗?
谢谢,拉尔夫
你可以这样写
frame.addLoadHandler(new LoadHandler() {
@Override
public void onLoad(LoadEvent event) {
if(frame.getUrl().equals("your link here"))
loginSucceededCallback();
}
});
- Google 加号登录不会返回id_token
- 注册,登录和分享内容通过LinkedIn和Twitter与服务器端身份验证(如Google+)
- 有没有办法使用Google's Javascript客户端登录时没有弹出窗口
- Google+登录JavaScript回调问题
- 如何从Google+OAuthJS登录中获取user_email
- Google Plus登录-未知RPC服务错误
- 通过 Google Maps API 显示引导登录模式
- 使用Facebook,Google C#包装库登录
- Google Oauth2 使用 javascript API 登录不适用于 IE
- Google Plus 在本地主机上登录 Cookie 政策
- Google 使用 Javascript API 登录,无需触发弹出窗口
- 当登录是使用 JSON 时,如何让 Google Adsense 访问登录区域中的页面
- 使用 JavaScript 启动 Google+ 登录流程不起作用
- 如何在NativeScript中实现社交“登录/登录使用”facebook,google,twitter
- 将Google Analytics(分析)点击事件跟踪器添加到Wordpress社交登录小部件元素
- 将Google+登录按钮添加到网站
- Google+ 登录 Javascript api 在完成加载之前触发回调
- Google+ 使用 PHP 登录
- Javascript Object属性在声明之前已登录Google Chrome控制台
- 添加Meteor登录google oauth