2017-07-31 15 views
0

おはようございます。私は大きな問題を抱えています。私はajaxで入力するためにいくつかのパラメータを使用していますが、このコードにAjaxを送信すると、何もせずにリダイレクトされます。私はあなたがより良い方法を持っていると信じていますが、ドキュメンテーションは何も説明していません!あなたが私を助けることができれば、ありがとう!Cakephp 3 - Ajaxログイン

class ContaController extends AppController { 
    public function initialize() { 
     parent::initialize(); 
     $this->loadComponent('Flash'); 
     $this->loadComponent('Auth', [ 
      'authenticate' => [ 
       'Form' => [ 
        'fields' => ['username' => 'email', 'password' => 'senha'], 
        'userModel' => 'Conta', 
       ] 
      ], 
      'loginAction' => [ 
       'controller' => 'Conta', 
       'action' => 'index' 
      ], 
      'loginRedirect' => [ 
       'controller' => 'Conta', 
       'action' => 'minhaAgenda' 
      ], 
      'logoutRedirect' => [ 
       'controller' => '/' 
      ], 
      'storage' => 'Memory' 
     ]); 
     $this->Auth->allow(['index']); 
    } 

    public function index() { 
     if ($this->request->is('ajax') || $this->request->is('post')) { 
      $user = $this->Auth->identify(); 
      if ($user) { 
       $this->Auth->setUser($user); 
       echo 'success'; 
      } else { 
       echo 'incorrect'; 
      } 
     } 
    } 
    public function sair() { 
     return $this->redirect($this->Auth->logout()); 
    } 
} 
+0

あなたはビューファイルを共有できますか? –

答えて

0

Carrego oコンポーネントは、権限を委譲します。 オブザーバ

public function login() 
    { 

    if ($this->request->is('post') || $this->request->is('ajax')) { 
      $user = $this->Auth->identify(); 
      if ($user) { 
       $this->Auth->setUser($user); 
       return $this->redirect($this->Auth->redirectUrl()); 
      } 
      $this->Flash->error(__('Usuário ou senha incorretos.')); 
     } 

    } 

のNaビューがExistem outras formasデOS入力を

<?= $this->Form->input('username',['class'=>'fields]) ?> 
<?= $this->Form->input('password',['label'=>'Senha','class'=>' fields']) ?> 

を観察ログインlinha '許可' => [ 'コントローラ']

$this->loadComponent('Auth', [ 
       'authorize' => ['Controller'], 
       'loginAction' => [ 
          'controller' => 'Users', 
          'action' => 'login' 
       ], 
       'loginRedirect' => [ 
        'controller' => '/', 
       ], 
       'logoutRedirect' => [ 
          'controller' => 'Users', 
          'action' => 'login' 
       ], 
       'authenticate' => [ 
        'Form' => [ 
         'fields' => [ 
            'username'  => 'username', 
            'password'  => 'password' 
           ], 

        ] 
       ], 
       'unauthorizedRedirect' => $this->referer(), 
       // 'storage' => 'Session' 
      ]); 

Ométodoデsubmeter sem oはclaroをシリアライズします。オススメはサブメデロスを投稿して投稿する "chegarem"はメゾモフォーマットではありません。sem Jquery、Php puroを送信してください。 Na duvidaデバッグ($ this-> request-> data); seguido de um die()とは何のコンソールもない(caso do ajax)。

これはebug($ this-> request-> data)です。

[ 
    'username' => 'nomeuser', 
    'password' => 'asdfasdf-essa-e-a-senha' 
]