Google app engine 在对google联系人进行身份验证时,来自google的回调在新会话中返回
我正在使用GAE+GWT+Guice,为googlecontactsapi做以下工作。参见代码 当Google服务使用令牌重定向回应用程序URL时, 它创建了新的会话,因为URL是从Google服务器而不是客户端浏览器调用的 两个问题 1.这是正确的行为吗?如果没有,我如何更正? 2.为请求用户存储/使用令牌的首选方式是什么 请求Servlet GWT RPC 回调servlet 编辑 我知道接收不同的会话是正确的行为,所以现在我想弄清楚,在我的应用程序中,我为哪个用户会话接收了回调。所以我想把会话\ id/用户\ id传递给回调\ uri,但这是不允许的,回调uri必须与GoogleAPI控制台中注册的回调uri匹配。我真的被卡住了。。看来只有我有这个问题,知道吗Google app engine 在对google联系人进行身份验证时,来自google的回调在新会话中返回,google-app-engine,gdata-api,gdata,Google App Engine,Gdata Api,Gdata,我正在使用GAE+GWT+Guice,为googlecontactsapi做以下工作。参见代码 当Google服务使用令牌重定向回应用程序URL时, 它创建了新的会话,因为URL是从Google服务器而不是客户端浏览器调用的 两个问题 1.这是正确的行为吗?如果没有,我如何更正? 2.为请求用户存储/使用令牌的首选方式是什么 请求Servlet GWT RPC 回调servlet 编辑 我知道接收不同的会话是正确的行为,所以现在我想弄清楚,在我的应用程序中,我为哪个用户会话接收了回调。所以我想把
public String getAuthLink() {
String next = "http://localhost:8888/serviceCallback?service=GMAIL";
String scope = "https://www.google.com/m8/feeds/";
boolean secure = false;
boolean session = true;
return AuthSubUtil.getRequestUrl(next, scope, secure, session);
}
@Override
public boolean isAuthenticated(ServiceProviderKey serviceProviderKey) {
//SESSION PRINT A
System.out.println("Session: " + getThreadLocalRequest().getSession().getId());
//SOME CODE
}
protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
String authToken = req.getParameter("token");
String sessionToken = AuthSubUtil.exchangeForSessionToken(authToken, null);
//SESSION PRINT B
System.out.println("Session: " + req.getSession().getId());
req.getSession().setAttribute("token", sessionToken);
}