libro
www.tuyano.com
PHPで始めるGoogle App Engine (GAE)入門

UserとUserService (3/3)

作成:2013-06-09 10:02
更新:2013-06-09 10:02

■ログインユーザー情報の取得

ユーザーの情報は、Userクラスとして管理されています。ログインしたユーザーについての情報を扱う場合、

1. ログインユーザーのUser取得
2. Userに保管されたユーザー情報の取得

以上の2点について理解する必要があるでしょう。ではこれらについて整理しておきましょう。


●ログインユーザーの取得
$変数 = UserService::getCurrentUser();
非常に簡単ですね。getCurrentUserメソッドを呼び出すことで、現在ログインしているユーザーのUserインスタンスを取得することができます。ログインしていない場合、返値はnullとなりますので、これをチェックすることで「ログインしているかどうか」を確認することができます。


●ユーザーIDの取得
$変数 = 《User》->getUserID();
ユーザーIDを取得します。ユーザーに割り当てられるユニークなID番号です。メールアドレスの設定によってはnullが返される場合もあります。


●ユーザーのニックネームを取得
$変数 = 《User》->getNickname();
ユーザーのニックネームを取得します。ニックネームはアカウントに設定されている文字列の値です。ニックネームを設定していない場合、通常はメールアドレスが代わりに使われます。


●ユーザーのメールアドレスを取得
$変数 = 《User》->getEmail();
アカウントのメールアドレスを文字列として取得します。これは常に取得されます。


●管理者かどうかチェックする
$変数 = 《User》->isCurrentUserAdmin();
アプリケーションの管理者かどうかをチェックするためのものです。返値は真偽値となっており、trueであれば管理者のアカウントでログインしていることを示します。


これらの情報を取得してユーザーを管理することができます。では簡単な利用例を以下に挙げておきましょう。これは、現在ログインしているユーザーの情報を取り出して表示するものです。getCurrentUserUseインスタンスを変数に取得しておき、そこからメソッドを呼び出して情報を表示しています。

なお、ここではUserを取得した後、createLoginURLを呼び出してログインアドレスを作成しておき、Usernullだったらログインアドレスにリダイレクトするようにしてあります。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

<?php
require_once 'google/appengine/api/users/UserService.php';

use google\appengine\api\users\User;
use google\appengine\api\users\UserService;

$user = UserService::getCurrentUser();
$login = UserService::createLoginURL($_SERVER['REQUEST_URI']);
if ($user == null) {
    ob_start();
    header('Location: ' . $login);
    ob_flush();
}
?>
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta http-equiv="content-type" 
        content="text/html; charset=UTF-8">
    <title>sample</title>
    <style>
    body { font-size:12pt; color:#000066; }
    h1 { font-size:18pt; background-color:#DDDDFF; }
    </style>
</head>
<body>
    <header>
        <h1>Sample Page</h1>
    </header>
    <div role="main">
        <p>ID: <?php
            if ($user != null) echo $user->getUserID();
        ?></p>
        <p>user: <?php
            if ($user != null) echo $user->getNickname();
        ?></p>
        <p>mail: <?php
            if ($user != null) echo $user->getEmail();
        ?></p>
    </div>
</body>
</html>

※関連コンテンツ

「PHPで始めるGoogle App Engine (GAE)入門」に戻る