Pxxo_Widgets_Auth

Affiche un formulaire d'authentification. Ce widget permet de se connecter et de se déconnecter d'une base de donnée d'utilisateurs quelconque. Son utilisation la plus courante sera d'être inséré dans le header d'un site internet : lorsque l'utilisateur n'est pas connecté il aura alors la possibilité d'entrer son login/password et lorsque l'utilisateur est connecté il pourra en un clique se déconnecter.

Le widget est basé sur le package PEAR::Auth. Ceci permet sans trop d'efforts de profiter des nombreuses possibilités de connexion que ce package permet. On peut de cette manière se connecter sur les sources suivantes (voir aussi la doc de pear) :

  • All databases supported by the PEAR database layer
  • All databases supported by the MDB database layer
  • All databases supported by the MDB2 database layer
  • Plaintext files
  • LDAP servers
  • POP3 servers
  • IMAP servers
  • vpopmail accounts
  • RADIUS
  • SAMBA password files
  • SOAP (Using either PEAR SOAP package or PHP5 SOAP extension)
  • PEAR website
  • Kerberos V servers
  • SAP servers

Quelques copies d'écrans :

  • Avant de se logger :
    Le formulaire d'authentification
  • Si on s'est trompé :
    Le formulaire d'authentification
  • Une fois connecté :
    Le formulaire d'authentification

Pour aller plus loin :

Paramètres

Nom Valeur par défaut Description
driver 'Array' Quel conteneur doit on utiliser pour se connecter
options array( 'users' ⇒ array( 'guest' ⇒ 'guest', 'georg' ⇒ 'georg' ), 'cryptType' ⇒ 'plain' ); Les options du conteneur selectionné plus haut
showform false Passer se paramètre à true aura pour effet d'afficher directement le formulaire de connexion plutôt qu'un lien “Connexion”

Remarques :

  • La liste des drivers possibles est décrite dans la documentation du package PEAR::Auth.
  • Ce widget étend les fonctionnalités du driver LDAP pour permettre de se connecter en utilisant un login/password (ce qui n'est étrangement pas possible avec le driver par défaut de PEAR::Auth). L'attribut passwordattr a été rajouté et permet conjointement à userattr de se connecter sur une base LDAP utilisant un attribut pour le mot de passe. Exemple de connexion LDAP :
    $params['driver'] = 'LDAP';
    $params['options'] = array( 'host' => 'sd-int.inist.fr',
                                'port' => '50005',
                                'version' => 3,
                                'basedn' => 'dc=inist,dc=fr',
                                'userattr' => 'uid',
                                'passwordattr' => 'userPassword',
                                'binddn' => 'cn=vador,dc=inist,dc=fr',
                                'bindpw' => '****'
                                );

Paramètres de retour

Plusieurs méthodes peuvent être consultées après avoir fait le →addWidgets(…) ou le →main() :

  • isConnected() : retourne vrai ou faux suivant si l'utilisateur est connecté ou pas
  • getUsername() : retourne le nom de l'utilisateur actuellement connecté
  • isJustConnected() : retourne vrai ou faux suivant si l'utilisateur vient juste de se connecter (s'il vient de cliquer sur le boutton “Connect” et que ses paramètres nom d'utilisateur/mot de passe sont bons).
  • getPEARAuth() : retourne l'instance de la classe PEAR::Auth utilisé en interne dans le widget

Exemples

Utilisation d'un conteneur mysql (PEAR::DB) :

// using DB storage
$params = array();
$params['driver'] = 'DB';
$params['options'] = array( 'dsn'    => 'mysql://root@localhost/pxxo_widgets_auth',
                            'table'  => 'membres',
                            'usernamecol' => 'username',
                            'passwordcol' => 'password',
                            );
$obj1 =& new Pxxo_Widgets_Auth($params);
$obj1->main();
$obj1->dump();

Utilisation d'un conteneur tableau (les utilisateurs/mots de passes sont passés en arguments dans un tableau php) + thème google :

// using Array storage
$params = array();
$params['theme'] = 'google';
$params['showform'] = true;
$params['driver'] = 'Array';
$params['options'] = array( 'users' => array('guest' => md5('guest'),
                                             'georg' => md5('georg')
                                             ),
                            'cryptType' => 'md5'
                            );
$obj2 =& new Pxxo_Widgets_Auth($params);
$obj2->main();
$obj2->dump();

Utilisation d'un conteneur LDAP (ici la configuration est celle utilisée sur les serveurs de l'INIST) :

// using LDAP storage
$params = array();
$params['driver'] = 'LDAP';
$params['options'] = array( 'host' => 'sd-int.inist.fr',
                            'port' => '50005',
                            'version' => 3,
                            'basedn' => 'dc=inist,dc=fr',
                            'userattr' => 'uid',
                            'passwordattr' => 'userPassword', // this field is specific to Pxxo_Widgets_Auth
                            'binddn' => 'cn=vador,dc=inist,dc=fr',
                            'bindpw' => '****'
                            );
$obj3 =& new Pxxo_Widgets_Auth($params);
$obj3->main();
$obj3->dump();
fr/doc/pxxo_widgets_auth.txt · Dernière modification: 2008/03/13 15:56 (édition externe)
 
 
Recent changes RSS feed Valid XHTML 1.0 Valid CSS Powered by PHP Driven by DokuWiki
©2003-2008 Pxxo