#1 2018-06-27 23:55:00

Papang
Membre
2018-06-27
3

Authentification par email.

Bonsoir,

Je voulais savoir s'il était facilement possible de faire en sorte que l'authentification des utilisateurs se fasse avec l'adresse email, plutôt qu'avec le nom d'utilisateur, mais que ce soit le nom d'utilisateur qui soit affiché une fois connecté.

J'ai fait un test en modifiant la variable $conf['user_fields'], mais ce n'est plus l'identifiant qui s'affiche une fois connecté.

Cette question a peut-être déjà été posée, mais je n'ai pas réussi à affiner ma recherche sur le forum pour retrouver le post s'il existe.

Merci pour votre aide ;)

Version de Piwigo: 2.9.3
Version de PHP: 7.0
Version de MariaDB: 10.1.26
URL Piwigo: http://galerie.prugnieres.fr

Hors ligne

#2 2018-06-28 12:46:18

flop25
Équipe Piwigo
2006-07-06
6378

Re: Authentification par email.

Bonjour
il faut faire un plugin custom qui intercepte les données lors du login et qui va chercher l'identifiant associé à l'email donné pour permettre le login classique
voici le squelette :

add_event_handler('init', 'id_email');
function id_email()
{
  global $user;
  if (isset($_POST['login']))
  {
// todo requete pour cherche l'identifiant associé
    $_POST['login']=$resultat_de_la_requete;
   
  }
}

Dernière modification par flop25 (2018-06-28 12:47:01)

Hors ligne

#3 2018-06-29 00:02:19

Papang
Membre
2018-06-27
3

Re: Authentification par email.

flop25 a écrit:

Bonjour
il faut faire un plugin custom qui intercepte les données lors du login et qui va chercher l'identifiant associé à l'email donné pour permettre le login classique
voici le squelette :

add_event_handler('init', 'id_email');
function id_email()
{
  global $user;
  if (isset($_POST['login']))
  {
// todo requete pour cherche l'identifiant associé
    $_POST['login']=$resultat_de_la_requete;
   
  }
}

Merci beaucoup pour cette réponse. Je vais tenter d'ingérer ce que vous m'expliquez et de l'appliquer. Je vous tiens au courant ;)

Hors ligne

#4 2018-07-01 15:30:31

Papang
Membre
2018-06-27
3

Re: Authentification par email.

Hello,

Ca y est, j'ai modifié ce que vous m'avez fourni comme squelette. C'est parfait. Ca fonctionne. Je le poste ci-dessous, peut-être que ça pourrait être utile à quelqu'un, ou je pourrais peut-être en faire un plugin ?

D'un point de vue sécurité je ne sais pas si j'ai ouvert des brèches par contre ...

Merci encore flop25 !

Code:

add_event_handler('init', 'id_email');
function id_email()
{
  global $user;
  
  // Le bouton "Connexion" a été pressé
  if (isset($_POST['login'])) {
    // Le champ identifiant est rempli
    if (isset($_POST['username'])) {
      $ident = $_POST['username'];
      
      // Le champ identifiant contient une adresse mail
      if (email_check_format($ident)) {
        // Récupération de l'user_id.
        $my_user_id = get_userid_by_email($ident);
        // Récupération de l'username associé
        $my_user_datas = getuserdata($my_user_id);
        
        // Remplacement de l'adresse mail par le username
        $_POST['username'] = $my_user_datas['username'];
      } 
    }
  }
}

Hors ligne

#5 2018-07-01 16:12:20

flop25
Équipe Piwigo
2006-07-06
6378

Re: Authentification par email.

C'est magnifique Bravo !!
Vous avez utilisez tout ce qu'il faut Pas de soucis de sécurité à mon humble avis

Hors ligne

#6 2018-07-01 17:00:11

Thom1
Membre
2011-05-30
78

Re: Authentification par email.

Bonjour,

Voilà une fonctionnalité très intéressante que je serai heureux de voir comme plugin, ou mieux… directement intégrer à piwigo. :)

Merci.


Thomas Bourdon

Hors ligne

Pied de page des forums

Propulsé par FluxBB