ケータイサイトでの認証とかについて 実装「かんたんログイン」編

ケータイの個体識別番号(uid)が欲しい場合、NTTドコモではurlの引数に"guid=ON"をつけなくてはいけない。認証をする時には必ず指定する。

<a href="actionLogin.php?guid=ON">ログイン</a>
UserAgentの判定

uidの取得方法が携帯キャリアによって異なるので、uidを使うときにはUserAgentの判定も同時におこないます。
PEAR::Net_UserAgent_Mobileを使うのが楽です。

<?php
require_once('Net/UserAgent/Mobile.php');
$agent = Net_UserAgent_Mobile::factory();
$uid = $agent->getUID();
if ( is_null($uid) && $agent->isSoftBank() ) {
   $uid = $agent->getSerialNumber();
}
?>

iモードIDだけを使うことを前提にすると、コレだけでuidを取得できます。だた、ソフトバンクではHTTP拡張ヘッダX-JPHONE-UIDを送らない機種もあるのでちょっとスマートじゃないですね。

お前の予定!では学習目的に書き起こしました。UserAgentのキャリア判定を自動にして共通のメソッドgetKeitaiId()で「識別する番号(uidもしくは端末製造番号)」を取得できるようにしました。

<?php
require_once('Keitai.class.php');
$ua = Keitai::factory();
$uid = $ua->getKeitaiId();
?>