okabon のすべての投稿

Ktai Library でiModeの時のredirectでURLがおかしくなっていた。

 CakePHP 1.2 prefix付きURL生成時の注意点

上記URLを参考にAppController内でiMode用にredirectをオーバーライドしている所に
若干コードを追加

最後にURLを生成している

$url = Router::url($url, true);

の前に

if(isset($url['prefix'])){
  if($url['prefix']=='mobile'){
     $url['prefix'] = '';
  }
}

を追加。
姑息的措置と思われだけど、これでなんとか解決した。
あ、結局「Ktai Library」の0.2.0を使わせてもらってます。
付け足し
ktai.php などでライブラリをインポートしているところが
環境によって正しくインポートされないので以下の処置

//require_once(VENDORS.'ecw'.DS.'lib3gk.php');
  App::import('Vendor', 'lib3gk', array('file' => 'lib3gk.php'));

簡単ログイン

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]