私はしばらくこれと戦ってきました。私は認証を必要とする CakePHP 2.0 アプリケーションを持っています。それは別の言語でなければならないという事実のために、「ユーザー名」と「パスワード」の規則を使用して自動魔法の「ユーザー」から離れ、独自のデータベーステーブルを作成しました。
utilizatori('id', 'nume', 'parola')
私のAppControllerでは、次のように定義されています。正しく理解できれば、デフォルトの CakePHP の関連付けをオーバーライドして、新しい構造を使用する必要があります。
class AppController extends Controller {
var $components = array('Session',
'Auth' => array('Form' => array(
'userModel' => 'Utilizator',
'fields' => array('username' => 'nume', 'password' => 'parola'),
'loginAction' => array('controller' => 'utilizatori', 'action' => 'login'),
'loginRedirect' => array('controller' => 'categorii', 'action' => 'admin_index'))));
function beforeFilter() { }
}
私のUtilizatoriControllerには、次のログイン機能があります。
function login()
{
$this->layout = 'admin';
debug($this->data);
debug(Security::hash($this->data['Utilizator']['parola']));
debug($this->Auth->login());
/*more here but don't think it's important*/
データ デバッグで期待値が表示されます。次のように仮定します。
**data['Utilizator']['nume']** = 'Cosmin'
**data['Utilizator']['parola']** = 'Cosmin'
パスワード ハッシュ デバッグは、データベースに手動で挿入した予想されるハッシュを生成しますが、ログイン関数はfalseを返します。
次に何をすべきかわからないので、フィードバックをいただければ幸いです。また、 $this->Auth->login()に送信されるものにアクセスする方法はありますか?
ありがとうございました