User オブジェクト

User クラスのインスタンスはユーザーを表します。User インスタンスは固有であり、比較が可能です。2 つのインスタンスが同じであれば、それは同じユーザーを表します。

アプリケーションは、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(string 値)は getUserId() メソッドによって返されます。

User オブジェクトは、アプリでどの認証方式を使用する場合でも同じ形式になります。