Votre code ajax devrait ressembler à ceci:
$(document).on('submit','#yourFormId',function(event){
event.preventDefault();
var data = $(this).serialize();
var url = 'url_for_your_login_method'; /* like 'localhost/your_project_name/Users/login' */
$.ajax({
url:url,
type:'post',
data:data,
dataType:'json',
success:function(response) {
if(response == 1) {
// login success
} else {
// login fails
}
}
});
});
Et dans votre méthode de connexion devrait ressembler à ceci:
if ($this->request->is('post'))
{
if ($this->Auth->login())
{
if ($this->Auth->user('role') === 'admin')
{
$output = 1; // login success and role is admin
} else {
$output = 0; // login success but role is not admin
}
} else {
$output = 2; // login fails
}
$this->set(array(
'output'=>$output,
'_serialize'=>'output'
));
}
Pour le hachage de mot de passe Blowfish, Dans votre AppController:
<?php
class AppController {
public $components = array(
'Auth' => array(
'authenticate' => array(
'Form' => array(
'passwordHasher' => 'Blowfish'
)
)
)
);
}
?>
Et AppModel:
<?php
App::uses('BlowfishPasswordHasher', 'Controller/Component/Auth');
class User extends AppModel {
public function beforeSave($options = array()) {
// if ID is not set, we're inserting a new user as opposed to updating
$passwordHasher = new BlowfishPasswordHasher();
$this->data[$this->alias]['password'] = $passwordHasher->hash($this->data[$this->alias]['password']);
return true;
}
}
Je suppose que vous auriez besoin de JavaScript pour envoyer des informations d'identification et une réponse JSON dire si elle a réussi ou non. Vous pouvez le faire avec JavaScript brut ou utiliser une bibliothèque comme jQuery. Vous pouvez ensuite utiliser un contrôleur pour donner les bonnes réponses. – halfer
monsieur, j'ai utilisé $ .ajax méthode jquery mais le problème est que comment peut-il comparer – Raju1990
OK, s'il vous plaît ajouter votre code JS. Je suppose que vous envoyez un nom d'utilisateur, mot de passe et le rôle de votre JavaScript. Vous aurez probablement besoin d'un autre contrôleur pour cela - utilisez la logique PHP ci-dessus et renvoyez une réponse JSON avec un succès booléen et des chaînes d'erreur si nécessaire. – halfer