簡単ログイン

AuthComponentの認証に簡単に自動ログイン機能を追加するコンポーネント

を参考に簡単ログイン用コンポーネントを作成。

個体識別番号をPOSTするフォームのコントローラで個体識別番号を指定して
簡単ログイン用コンポーネントのログインを呼び出すという形式。
要はログイン画面をスキップして別途取得したユーザーIDをパラメータとして
AuthComponentのloginを使用するという方法。

なるほど。

これの応用でユーザー登録されていないゲストの制限付きログインもできるかも。

ゲスト用URLからGetしたゲストログインIDを登録したテーブルには
ゲストを招いたユーザーのユーザーIDが入っているんだし。
それをとってくればいい話だわい。

そんでもって、、、、
AuthComponentの認証に簡単に自動ログイン機能を追加するコンポーネント
を参考させてもらって、モバイル用の簡単ログインコンポーネント作ってみました。
[PHP]
field = ‘mobuid’;
//簡単ログインに使用する個体番号を初期化
$this->mobuid = ”;
}

/**
* コンストラクタ
* @param $controller 呼び出し元コントローラーインスタンス
*/
function startup(&$controller) {
//コントローラーを取得
$this->controller = & $controller;
//AuthComponentから認証に使うモデルを取得
$this->userModel = & $controller->{$controller->Auth->userModel};
//AuthComponentの自動リダイレクト設定を切る
$controller->Auth->autoRedirect = false;

//ログイン処理
//$this->login();
}

/**
* 簡単ログインを実行する.
*/
function login() {
//ログイン済みなら終了
if($this->controller->Auth->user()) {
return;
}

//簡単ログイン個体番号が設定されている場合
if($this->mobuid!=”) {
//簡単ログイン個体番号からユーザー情報を取得
$user = $this->userModel->find(‘first’, array(
‘conditions’ => array($this->userModel->name.’.’.$this->field => $this->mobuid)
));

//取得したユーザー情報でログイン
if($this->controller->Auth->login($user[$this->userModel->name])) {
//なにもしない
}
}
}
}
?>
[/PHP]