私はRememberMeコンポーネントを使用しています。実際、CakePHP1.3アプリをCakePHP2xに移行します。私はRememberMeComponentであるコードのこの最後のピースで立ち往生しています。
クッキーを設定するためにここに表示されるスクリプトは次のとおりです。
function make( ) {
$data = array(
$this->ident_field => $this->_create_token( ),
$this->token_field => $this->_create_token( ),
);
$this->Cookie->name = $this->cookie_name;
$this->Cookie->time = $this->period;
$this->Cookie->key = base64url_encode(implode('::', $data));
$this->Cookie->secure = true;
$this->Auth->getModel()->save(array($this->Auth->userModel => array_merge(array('id' => $this->Auth->user('id')), $data)), false);
}
とチェックします:
function check( ) {
$cookie = $this->Cookie->read($this->cookie_name);
if (empty($cookie)) {
return false;
}
$data = explode('::', base64url_decode($cookie));
$user = $this->Auth->getModel( )->find('first', array(
'conditions' => array(
$this->Auth->userModel.'.ident' => $data[0],
),
));
if ( ! $user) {
return false;
}
関数base64url_encodeはブートストラップで定義されているため、有効な関数です。
今、行があります:
$this->Auth->getModel()->save(array($this->Auth->userModel => array_merge(array('id' => $this->Auth->user('id')), $data)), false);
それは私にエラーを与えています:
Error: Call to undefined method AuthComponent::getModel()
File: /var/www/FlintStones/Controller/Component/RememberMeComponent.php
Auth Componentのドキュメントを確認しましたが、authのモデルを見つけることができるオプションがありませんでした。
前もって感謝します。
PS:自動ログインに直接移行することはできません(あなたがそれを念頭に置いているかもしれません)、またはあなたがクイックステップバイステップを参照することもできるならば、共有してください。私もそれを考えるかもしれませんが、これまでのところ、Authモデルを取得するだけです。