我正在使用go
和GAE
构建一个网络应用。我想使用Google帐户进行身份验证。 appengine/user
包中包含类型User
。我计划使用ID
User
属性作为Datastore
中后代实体的祖先。但是,我对本部分文档中的注释感到困惑:
type User struct {
Email string
AuthDomain string
Admin bool
// ID is the unique permanent ID of the user.
// It is populated if the Email is associated
// with a Google account, or empty otherwise.
ID string
FederatedIdentity string
FederatedProvider string
}
来源:https://cloud.google.com/appengine/docs/go/users/reference#User
在什么情况下,电子邮件可能与Google帐户无关,因此ID
为空?
我对go
和GAE
非常陌生,所以请原谅我的无知。
答案 0 :(得分:0)
电子邮件和身份证之间存在几个主要差异。例如。 “即使用户更改了帐户的电子邮件地址,该应用也可以访问唯一标识用户的用户ID。”此外,“每个用户对所有App Engine应用程序都具有相同的用户ID。”
就像ThunderCat所说的那样,如果你使用联合登录(OpenID是唯一支持的,但不再支持),那么你将无法获得用户ID。
有关详细信息,请参阅the docs。