認証コンポーネントに問題があります。ユーザーでログインしようとするたびに (ユーザーが正しいパラメーターでデータベースに存在することを確認しました)、アプリケーションからログイン失敗メッセージがスローされます。
Accounts と Employees の 2 つのモデルがあり、1 つの Employee は AccountsTo Account に属し、1 つの Account は One Employee を持っています。saveAssociated() でデータを保存すると、データベースはすべて問題ありませんが、ログインできません。
私は解決策を探していて、クックブックのチュートリアルを何度も繰り返していますが、間違っていることを見つけることができません。
ここにいくつかのコードがあります:
class AppController extends Controller {
public $components = array(
'DebugKit.Toolbar',
'Session',
'Auth' => array(
'loginAction' => array('controller' => 'accounts', 'action' => 'login'),
'loginRedirect' => array('controller' => 'snippets', 'action' => 'index'),
'logoutRedirect' => array('controller' => 'snippets', 'action' => 'index'),
'authorize' => array('Controller')));
public function beforeFilter() {
$this->Auth->loginAction = array('controller' => 'accounts', 'action' => 'login');
$this->Auth->authenticate = array(
AuthComponent::ALL => array(
'userModel' => 'Account',
'fields' => array('username' => 'username', 'password' => 'password')),
'Basic',
'Form');
$this->Auth->allow('index', 'view');
私のログイン機能:
public function login() {
if($this->request->is('post')) {
if ($this->Auth->login()) {
$this->Session->setFlash(__('Welcome'));
return $this->redirect(array('controller' => 'snippets', 'action' => 'index'));
//return $this->redirect($this->Auth->redirect());
}
$this->Session->setFlash(__('Wrong password or email'), 'default', array(), 'auth');
}
}
誰かが私が間違っていることを教えてください。他のコード セクションが必要な場合は、教えてください。
ありがとう!