我正在尝试在本地开发服务器上使用 App Engine 的 UserService,但它的行为不像我预期的那样。我在论坛上搜索了我的问题的答案,但找不到任何专门解决我的问题的答案。
我做的第一件事是从 UserService 获取登录 URL,如下所示:
UserService userService = UserServiceFactory.getUserService();
if(userService.isUserLoggedIn())
String loginURL = userService.createLoginURL("/mycallbackservlet");
else
... do something else
假设用户最初没有登录,我提供了一个“mycallbackservlet”作为目标 URL,以便在(成功)登录后重定向到。要启动登录过程,我在客户端打开一个 GWT 窗口,如下所示:
Window.open(loginURL, "Bla", props);
loginURL 是上面创建的。我看到了本地开发服务器的模拟登录屏幕,您可以在其中输入任何用户。我只需单击确定。现在我的回调 servlet 被调用(如预期的那样)但是当我再次检索 UserService 对象时,它没有给我一个登录用户,即
UserServiceFactory.getUserService().isUserLoggedIn()
返回“假”。怎么会这样?这是典型的开发服务器行为还是我做错了什么?我是否应该以不同的方式打开初始 URL,即不使用 Window.open() 而是使用其他东西?
任何建议将不胜感激!