사용자 객체

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 계정을 만드는 경우에도 마찬가지입니다. 생성 당시 Google 계정을 나타내지 않는 이메일 주소를 사용하는 User 값은 절대로 실제 사용자를 나타내는 User 값과 일치하지 않습니다.

유효한 사용자의 User 객체는 사용자가 이메일 주소를 변경해도 그대로 유지되는 고유한 ID 값을 사용자에게 제공합니다. getUserId() 메서드는 이 ID인 string 값을 반환합니다.

User 객체는 앱에 사용되는 인증 방법에 관계없이 형태가 동일합니다.