• []
  • []
  •  
  • del.icio.us 
  •  
  • Yahoo!֥åޡϿ 

Net_UserAgent_Mobileでかんたんログインの情報を取り出す

PHP 求人 募集 Symfony CakePHP Smarty Ruby on Rails

Net_UserAgent_Mobileでかんたんログインの情報を取り出す 概要

かんたんログインというのを聞いたことがあるだろうか?
mixiやモバゲーなどで知られるようになった認証システムで、
携帯電話のシリアル番号(製造番号、EZ番号など)を利用して個体を判別し
ユーザー情報と紐付ける認証システムである。 正式名称は特にない。
(製造番号認証、個体識別番号認証などなど。固体識別番号はTYPO)

これを実装するのは結構難しくセキュリティも含めると実装するかどうか自体悩むことも多い。
そこはともかく、
このNet_UserAgent_Mobileを利用すると比較的楽になる。
認証システム自体はPEAR::Authや各種フレームワークを使うとして、
ここではシリアルナンバーの取得方法を記載する。

Net_UserAgent_Mobileでかんたんログインの情報を取り出す サンプル

<?php
 
require_once('Net/UserAgent/Mobile.php');
$mobObj = Net_UserAgent_Mobile::singleton();
// get serial number
$serialNumber = "";
switch( true )
{
  case ($mobObj->isDoCoMo()):   // DoCoMoかどうか
  case ($mobObj->isVodafone()): // softbankかどうか
    if( method_exists( $mobObj, "getSerialNumber" ) )
      $serialNumber = $mobObj->getSerialNumber();
    break;
  case ($mobObj->isEZweb()):    // ezwebかどうか
    if( isset( $_SERVER['HTTP_X_UP_SUBNO'] ) )
      $serialNumber = $_SERVER['HTTP_X_UP_SUBNO'];
    break;
  default:
    break;
}
 
echo $serialNumber;

Net_UserAgent_Mobileでかんたんログインを実装する 補足

シリアルナンバーというのは「キャリア」に対してのシリアルナンバーなので、
すべてのキャリアを含めたウェブサイト上でのシリアルナンバーにはならない。
これらをログインIDに用いる場合は必ずキャリア情報と併せてユニークになるようにすること。
getCarrierShortNameを用いるといいだろう。

  $mobObj->getCarrierShortName()

ナンバーポータビリティ以降キャリア変更が頻繁に起こるようになり、
機種変どころかキャリア変更も頻繁に発生する。 メールアドレスもコロコロ変えられる。
ユニークの情報は「ログインID」しか無いのだが、
かんたんログインはそれを無くすシステムである。
なのでメールアドレス、パスワードの変更、パスワード忘れ、ID変更などはキチンと整理しておくこと。

auのシリアル番号は製造番号ではないため、
ショップでかんたんに変更できることに注意。

勝手サイトはアクセス制限を設けないことがあるが、
端末認証を実装した場合はIP制限が必須になる。


pear/net_useragent_mobile/serialnumber.txt · 最終更新: 2007/07/29 00:12 by dozo