CakePHP-Fr.Org

Forum francophone du Framework CakePHP

Vous n'êtes pas identifié.

#1 04-03-2014 12:05:25

lexand
Pitivier
Date d'inscription: 12-02-2014
Messages: 18

[CONTROLLER Auth] Se connecter par mail et username

Hello le monde!
Voilà une petite astuce pour pouvoir se connecter avec une adresse mail ou bien un username :

Code: php

  1.    
  2. public function login() {
  3.     if ($this->request->is('post')) {
  4.             $pseudo = $this->data['User']['username'];
  5.  
  6.             $pseudo2 = $this->User->query("SELECT username from users where email = '$pseudo'");
  7.  
  8.             if(!empty($pseudo2))
  9.             {
  10.                 $pseudo2 = $pseudo2['0']['users']['username'];
  11.                 $this->Auth->request->data['User']['username']= $pseudo2;
  12.             }
  13.  
  14.           if ($this->Auth->login()) {
  15.                      $this->Session->write('Config.language', 'fra');
  16.                     return $this->redirect($this->Auth->redirect());
  17.           }
  18.                 else
  19.                 {
  20.               $this->Session->setFlash(__("Nom d'user ou mot de passe invalide, réessayer"));
  21.           }
  22.       }
  23.   }

Voici ce qu'il faut pour le faire marcher :
-un champ email/mail (comme vous voulez)
-un champ username

Fonctionnement :
-On détecte si ce qui est rentrée est soit un username ou un email
-si c'est un mail (condition if), on remplace le champ envoyé par celui du username correspondant sinon on ne fait rien

Inconvéniant (?) :
-il faut que chaque personne est sa propre adresse mail.

J'ai vu çà en cherchant sur google et il existait une fonction pour pouvoir se connecter avec un champ multiple (en gros on pouvait aussi bien se connecter par mail/username et même id) mais çà me semblait pas trop top (car je bosse en 2.4.4 et la version était de 1.3^^). Si vous voulez plus d'informations n'hésitez pas!

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB
Traduction par FluxBB.fr