您通常在 GWT 应用程序中使用 OpenID 进行登录的操作如下:
LoginInfo loginInfo = new LoginInfo();
UserService userService = UserServiceFactory.getUserService();
loginInfo.setLoginUrl(userService.createLoginURL(returnToUrl));
return loginInfo();
returnToUrl 是您希望在验证后重定向回来的当前 URL。这很好用,如果 returnToUrl 是一个简单的 URL,比如http://mydomain.com/go/here
但是当我的应用程序作为 GMail 上下文小工具运行时,它被包装在一个框架中,该框架从谷歌代理 (googleusercontent.com) 获取其内容。所以这是我想重定向回的框架内的 - 更复杂一点的 URL:
在 OpenID 注册期间,用户会被重定向几次,如果 returnToUrl 的 url 编码不正确,它的一部分就会丢失。
正如我在这里发现的那样,即使在某些情况下,您也必须对 URL 进行双重编码。但这次我无法正确编码 URL。
所以,我的问题:
您是否对 Gmail 上下文小工具中的 OpenID-return-to-URL 有什么提示?
或者可能是一个更简单的问题:有没有其他方法,我可以检索当前登录的 GMail 用户的电子邮件?