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

UserとUserService (2/3)

作成:2013-06-09 09:59
更新:2013-06-09 09:59

■ログインとログアウトについて

では、Googleアカウントを使ってログイン/ログアウトを行うにはどうすればよいのか。これは、実は非常に簡単です。

ログインやログアウトのための処理を実装する必要は全くないのです。ただ、生成される「ログイン用のアドレス」「ログアウト用のアドレス」に移動するだけで、ログインの管理をすべて行なってくれるのです。

これらのアドレスは、UserServiceに用意されているメソッドを呼び出すことで自動生成されます。以下に整理しておきましょう。


●ログインアドレスの取得
$変数 = UserService::createLoginURL( 戻るアドレス );

●ログアウトアドレスの取得
$変数 = UserService::createLogoutUR( 戻るアドレス );

いずれも引数を1つ持っています。この引数には、ログイン/ログアウト後に戻るページのアドレスを指定します。例えば、createLoginURL("/");とすれば、ログインページに移動してログインしたら、ルートページに戻るようになります。

では、以下に利用例を挙げておきましょう。これはトップページ("/"のアドレスで公開されているページ)のスクリプトです。このページでは、ログイン用とログアウト用のリンクを表示しています。これらをクリックすると、ログイン/ログアウトのページに移動し、そこでGoogleアカウントを使ってログイン/ログアウトすると、もとのトップページに戻ります。

ここでは、以下のようにして、認証処理後ルートに戻るログイン/ログアウトアドレスを取得しています。
$login = UserService::createLoginURL("/");
$logout = UserService::createLogoutURL("/");
これらの変数に取得したアドレスをそのまま<a href="<?php echo $login; ?>">というようにして<a>タグのhrefに設定するだけで、ログイン/ログアウトのリンクが作成できてしまいます。それ以外の具体的なログイン/ログアウト処理は一切ありません。



※ローカル環境でのログインについて

ローカル環境で動かす場合、ログインアドレスにアクセスすると、仮のログインページが現れます。これはメールアドレスを入力するだけのもので、正式なものではありません。単に、動作確認用に用意されているだけです。これをそのままGAEにデプロイすると、ちゃんとGoogleアカウントのログインページにアクセスするように変わりますので心配は無用です。

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

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

●プログラム・リスト●

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

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

$login = UserService::createLoginURL("/");
$logout = UserService::createLogoutURL("/");
?>
<!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>User Service sample.</p>
        <p><a href="<?php echo $login; ?>">login page >></a></p>
        <p><a href="<?php echo $logout; ?>">logout page >></a></p>
    </div>
</body>
</html>

※関連コンテンツ

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