2017-07-31 12 views
0

Bon après-midi. J'ai une grosse question J'utilise certains paramètres pour entrer avec ajax, mais quand j'envoie l'ajax à ce code il redirige simplement sans rien faire. Je crois que tu as une meilleure méthode mais la documentation n'explique rien! Si vous pouvez m'aider, merci!Cakephp 3 - Ajax Connexion

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

pouvez-vous partager le fichier de code de vue? –

Répondre

0

Carregation d'un composant Authentique avec le même nom, autorisez-le. Observer une Linha 'autoriser' => [ 'Controller']

$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' 
      ]); 

O método de connexion

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.')); 
     } 

    } 

vue Na observer les entrées os

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

Existem outras formas de submeter sem o sérialiser é claro. Il est possible d'envoyer un message par le biais d'un post "chegarem" sans método sans mesmo formato soumis par Jquery, Php puro. Na duvida debug ($ this-> request-> data); seguido de um die() e veja pas de console do navegador (caso do ajax).

A saida de ebug ($ this-> request-> data); deve ser algo parecido com isso

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