Bonjour,

Mon problème est simple, je suis avec la dernière version de cake et le composant Auth ne fonctionne pas du tout.

J'ai bien respecté les conventions, donc table users, champs username et password.
Voici mes codes
User.php

<?php 
class User extends AppModel{
    public $validate = array(
        'username' => array(
            'required' => array(
                'rule' => array('notEmpty'),
                'message' => 'A username is required'
            )
        ),
        'password' => array(
            'required' => array(
                'rule' => array('notEmpty'),
                'message' => 'A password is required'
            )
        )
    );
}
 ?>

UsersController.php

<?php 
class UsersController extends AppController{
    public function login(){

        if ($this->request->is('post')) {
        if ($this->Auth->login()) {
           $this->Session->setFlash('bon');
        } else {
            $this->Session->setFlash('mauvais');
        }
    }
    }
}
 ?>

et enfin AppController

<?php
App::uses('Controller', 'Controller');
class AppController extends Controller {
    public $helpers = array('Html','Form','Session','Text','Cache');
    public $components = array('Session','Auth');
}

Peut importe ce que je mets dans mes champs et même en les laissant vide, j'ai le message comme quoi c'est ok, donc pour moi, il ne check pas la bdd, mais je ne comprends pas pourquoi

Merci

11 réponses


elscorto
Auteur
Réponse acceptée

C'est bon ça marche et je pense avoir compris, il devait rester une session ouverte ou quelque chose du genre, ce qui m'étonne c'est ce matin ça ne marché pas encore alors que j'ai pas touché au pc du week end, bref toujours refaire un logout après une connexion valide de manière à repartir avec des sessions vide, ce qui m'étonne aussi c'est que j'ai testé sur un autre pc aussi, avec les trois versions.

Je peux te dire que ça je vais m'en rappeler ;). Merci à vous deux, Ciloe, je suis avec avec la 2.2 là, je te dirai ça pour le composant email.

Tu peux te référer au tutoriel de Grafikart ici : http://www.grafikart.fr/tutoriels/cakephp/membres-user-auth-260

elscorto
Auteur

Je te remercie mais c'est pas trop la réponse que j'attendais, je les connais très bien ces tutos lol

Sinon je n'ai pas bougé de mon problème, donc j'ai téléchargé la dernière version du fw pour voir en utilisant le même code, et ce coup ci ça me fait l'inverse.

Donc en résumé :
V 2.0 : fonctionne impeccable sur un site en prod
V 2.1 : Tout passe, autrement dit champs vide ou pas correct ça passe
V 2.2 : Rien ne passe

J'ai fait ces tests avec la même bdd et même code, donc soit j'ai oublié un truc, ou soit il y a un blem quelque part ;)

Il faut savoir que j'ai utilisé la V 2.1 pour des emails, rien à faire ça ne marchait pas. Donc en gros à partir de la 2.1, la version CakePHP est beuguée.

Tu peux aller sur le site off et leurs dire.

Donc je te conseil de faire comme moi, prendre la V2.0 RCC2 et de faire toutes tes prod avec.

Et aussi pour ton code, je te conseil de mettre $this->request->is('put') avec ton post dans la condition.

Jutilise la 2.2 et tout fonctionne a merveille CakeEmail et Auth. J'ai la même chose que toi dans l'action login() c'est dans mon AppController ou j'ai spécifié plus de chose :

var $components = array(
            'Auth' => array(
                'authError' => 'Pensez-vous vraiment que vous êtes autorisé à voir ça ?',
                'loginAction' => array('controller' => 'users', 'action' => 'login', 'admin' => false),
                'logoutRedirect' => array('controller' => 'posts', 'action' => 'index', 'admin' => false),
                'loginRedirect' => array('controller' => 'posts', 'action' => 'index', 'admin' => true)
            ),

Pas sur que ce soit indispensable mais bon ...

elscorto
Auteur

Ok merci, je regarde ça ce week et je vous tiens au jus. Aiftea, si ta soluce est bonne, dégouté de la perte de temps pour ça :D

elscorto
Auteur

Bon le problème est tout autre car même sans enregistrement dans ma table users, il me valide le formulaire, donc en gros, la fonction Auth, ne check pas la table, c'est bien la première fosi que ça m'arrive ce truc

Oula gros problème alors ... quand tu sors un debug de tes données postées tu obtiens quoi ?

Mouais, je reste cantonné à mon idée : rester sur la V 2.0.RRC2. Elle fonctionne très bien...

Bon à savoir ^^

Yep, merci bien ^^