User 对象

User 类的一个实例表示一个用户。User 实例是唯一的,并且是可比较的。如果两个实例相同,那么这两个实例代表同一用户。

应用可以通过调用 UserService::getCurrentUser() 函数来访问当前用户对应的 User 实例。

use google\appengine\api\users\UserService;
$user = UserService::getCurrentUser();

if (isset($user)) {
    return sprintf('Welcome, %s! (<a href="%s">sign out</a>)',
        $user->getNickname(),
        UserService::createLogoutUrl('/'));
} else {
    return sprintf('<a href="%s">Sign in or register</a>',
        UserService::createLoginUrl('/'));
}

无论您的应用使用哪种身份验证选项,您都可以使用 UserService::getCurrentUser() 函数。

也可利用电子邮件地址构造 User 实例。

$user = new User('Albert.Johnson@example.com');

如果使用与有效 Google 账号不对应的电子邮件地址调用 User::__construct(),则会创建对象,但该对象与实际的 Google 账号不对应。即使有人在存储了该对象后用指定的电子邮件地址创建了 Google 账号,也将出现这种情况。如果创建 User 值时使用的电子邮件地址当时不代表 Google 账号,则该 User 值将永远不会匹配代表真正用户的 User 值。

有效用户的 User 对象可以为该用户提供唯一的 ID 值,即使该用户更改了其电子邮件地址,该 ID 值也保持不变。getUserId() 方法会返回此 ID,这是一个 string 值。

无论您的应用使用哪种身份验证方法,User 对象均采用相同的形式。