Google App Engine Java - 联合登录,在数据存储中保留什么

pla*_*nes 5 java google-app-engine federated-identity

我正在使用联合登录构建Google App Engine for Java应用程序.

当用户使用OAuth提供程序登录我的应用时,我会收到一个用户对象[http://code.google.com/appengine/docs/java/javadoc/com/google/appengine/api/users/User.html ].

我想在数据存储区中保留指向该用户的链接.但是,我使用什么作为唯一键?是getFederatedIdentity()还是getUserId()?两者都没有任何JavaDoc.显然,当用户随后登录我的应用程序时,我想要检索已保存到数据存储区的对象.

我理解federatedIdentity字段,我应该总是填充它(我只允许联合登录).但是,如果这是用于将我的详细信息链接到登录用户的字段,那么Google在本地服务器上进行测试时将其留空......这样就没那么多了.

什么是getUserId字段 - Google如何设置它?如果用户的联合身份保持不变,它是否保证保持不变?

非常感谢

mat*_*t b 2

来自用户 Java API 概述

当用户登录应用程序时,应用程序可以针对用户向应用程序发出的每个请求访问帐户的电子邮件地址或 OpenID 标识符。即使用户更改了其帐户的电子邮件地址,该应用程序还可以访问唯一标识该用户的用户 ID。

听起来getUserId()是最好的选择。