Bonjour à tous,
J’ai un petit problème sur les connexions (Authentification) avec CakePHP que je n’ai pas réussi à résoudre malgré de multiples recherches.
Lorsque les cookies sont désactivés sur mon navigateur, j’ai quelques petits problèmes.
L’instruction $this->Auth->login() renvoie true dans mon UserController et j’arrive à visualiser le contenu de $this->Auth->user() mais ensuite j’ai l’impression que la connexion s’interrompt puisque je ne suis pas redirigé vers la page que je veux, accessible uniquement une fois connecté. De même, quand j’entre de mauvais identifiants, mes erreurs ne s’affichent pas.
Cela parlera mieux avec du code :
Dans l’AppController :
[code]public $components = array('Auth');
public function beforeFilter() {
if($this->Auth->loggedIn()) {
$this->set('jeSuis' , $this->Auth->user());
}
$this->Auth->authenticate = array(
'Form' => array(
'userModel' => 'User',
'fields' => array('username' => 'username' , 'password' => 'password'))
);
$this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
$this->Auth->loginRedirect = array('controller' => 'users', 'action' => 'accueil');
$this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login');
$this->Auth->authorize = array('Controller');
}[/code]
Dans l’UserController :
[code]public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow('login', 'logout');
}
public function login() {
if(!$this->Auth->loggedIn()) {
if($this->request->is('post')) {
if ($this->Auth->login()) {
debug($this->Auth->user());
// Affiche les informations de l’utilisateur
$this->redirect(array('controller' => 'users' , 'action' => 'accueil'));
} else {
$this->Session->setFlash("Identifiants incorrects","warning", array('type' => 'error'));
// Ces erreurs ne s’affichent pas
$this->redirect($this->referer());
}
}
}else{
$this->Session->setFlash("Vous êtes déjà connecté »,"warning",array('type'=>'success'));
$this->redirect(array('controller' => 'users' , 'action' => 'accueil'));
}
}[/code]
Si ça peut aider, des fois j’ai ces erreurs là quand je fais des debug() (avec la fonction logout et login) :
[code]Warning (2): Cannot modify header information - headers already sent by (output started at /Applications/MAMP/htdocs/QualiteBleuBlancCoeur/lib/Cake/basics.php:117) [CORE/Cake/Model/Datasource/CakeSession.php, line 666]
Warning (2): session_regenerate_id() [function.session-regenerate-id]: Cannot regenerate session id - headers already sent [CORE/Cake/Model/Datasource/CakeSession.php, line 668][/code]
Merci d’avance pour votre aide !