table d'authentification personnalisée

Par anass razik, il y a 10 ans


salut tout le monde
j'ai un problème dans la configuration de la table d'authentification dans cakephp, comment configurer la composante Auth pour cherche une autre table que users par exemple table clients ?

19 réponses

anass razik, il y a 10 ans

j'ai just oublié mon ami :) , et j'ai déja travaillé une app web en jee alors je connais déja l'architecture MVC

lakamark, il y a 10 ans

Bonjour,
Quelle version de cakephp utilise-tu?

Cordiablement

anass razik, il y a 10 ans

j'utilise la version 2.2.5

burkbo, il y a 10 ans

Salut,
Dans ton AppController, tu peux mettre :

$this->Auth->authenticate = array('Form' => array( 'userModel' => 'Clients'));
anass razik, il y a 10 ans

Salut
je l'a met en beforefilter ?
merci :)

burkbo, il y a 10 ans

oui bien sur :)

anass razik, il y a 10 ans

j'ai ajouté le code pour spécifier le model d'authentification mais toujour cakephp me redirectionne vers /users/login

burkbo, il y a 10 ans

Apres il faut quand meme indiquer à ton logoutRedirect et redirect les url correspondantes:

$this->Auth->redirect = array('controller'=>'Clients','action'=>'index');
anass razik, il y a 10 ans

tout l temps le meme probleme, la table dans ma base de donnees s'appelle clients , le nom du controleur ClientController , le nom du model est Client
merci

bryou16, il y a 10 ans

Il faut que ton controller s'apelle ClientsController (Avec un s)

anass razik, il y a 10 ans

toujour le meme blem la redirection vers /users/login -_-

burkbo, il y a 10 ans

montre tout ton code entierement stp

anass razik, il y a 10 ans

ClientsController

App::uses('AppController', 'Controller'); class ClientsController extends AppController{ public function index(){ echo "hello i'm index"; } public function add(){ echo "client added"; } public function beforeFilter(){ parent::beforeFilter(); } }

le model Client:

App::uses('AppModel', 'Model'); class Client extends AppModel{ public function login(){ echo "you need to login"; } public function logout(){ echo "you are disconnected" } }

AppController

App::uses('Controller', 'Controller'); class AppController extends Controller { public $components = array( 'Session', 'Auth' ); public function beforeFilter() { parent::beforeFilter(); $this->Auth->authenticate = array('Form' => array( 'userModel' => 'Client')); $this->Auth->redirect = array('controller'=>'Clients','action'=>'index'); } }
bryou16, il y a 10 ans

T'es fonctions login et logout n'ont rien à faire dans ton modèle. Elles doivent être dans ton ClientsController.

Ensuite pour les composants j'aurais fait comme ça:

public $components = array( 'Session', 'Auth' => array( 'authenticate' => array( 'Form' => array( 'userModel' => 'Client' ) ), 'authorize' => array('Controller'), 'loginRedirect' => array('controller' => Clients', 'action' => 'index' ) );

Il faut également dans ton ClientsController, donner accès qu'au fonction login et logout.

burkbo, il y a 10 ans

bryou16 +1

anass razik, il y a 10 ans

merci a tous pour votre solutions, mais tout le temps c'est l meme probleme de redirection

Lartak, il y a 10 ans

Bonjour.
Qu'as-tu fais exactement comme modifications ?
Montres-nous à nouveau tes controllers App et Clients.
Tu t'attaques à l'authentification sans avoir au préalable compris le fonctionnement du Framework, ce n'est pas très judicieux.
Surtout que ce qui m'étonne, c'est que tu dis que CakePHP te redirige vers users/login sans parler d'affichage d'erreur alors que si tu en avais un affichage et que tu nous les mentionnais, elles pourraient nous être utile pour mieux t'aider.

anass razik, il y a 10 ans

lartak , j'ai compris le fonctionnement de cakephp :) à l'aide de la formation de grafikart
merci à bryou16 et burkbo j'ai résolu mon problème je suis sur la bonne route :)

Lartak, il y a 10 ans

Bonsoir.

lartak , j'ai compris le fonctionnement de cakephp :)

Pourquoi avoir fait des mélanges entre le modèle et le controller alors (fonctions de connexion et de déconnexion dans le modèle alors que c'est censé être dans le controller) ?