L’authentification permet d’identifier une personne au sein d’un système, afin de lui permettre de bénéficier de certains services, acquérir certaines informations, et effectuer les taches permises.
Pour réaliser ce module, on aura besoin d’une table dans la base de données du système, qui contient, au moins, un champ login, un deuxième pour le mot de passe, et un troisième déterminant les privilèges de l’utilisateur. Et bien évidement d’autre champ pour les informations complémentaires sur l’utilisateur. (Nom, date de naissance…).
Maintenant
Maintenant c’est temps d’exploiter ces informations, à travers un script PHP, en utilisant les fonctionnalités de la classe zend_auth du ZF. Ce script, représente le service d’authentification dans le module.
Pour utiliser zend_auth, il faut passer par ce qu’on appelle un adaptateur. Ce dernier permet de gerer un cas precis d’authentification ( notre cas : une base de données). Ici, on vas utiliser Zend_Auth_Adapter_DbTable.
Avant d’appeler la méthode authenticate, qui permet l’authentification, il faut tout d’abord configurer l’adaptateur, en lui passant la connexion (instance d’un adaptateur de connexion avec une base de données), la table d’utilisateurs, la colonne du login, et celle du mot de passe.
Ici,
Ici, $cn c’est une instance de l’adaptateur Zend_Db_Adapter_Pdo_Mysql qui permet la connexion avec une base de données MySQL.
Maintenant
Maintenant on a les bases d’utilisation, l’étape suivant c’est d’implémenter le code du service d’authentification en totalité.
Donc, après avoir créé un projet ZF et flex, on ajoute une classe PHP (perspective php) LoginService.
Notre service prend un nom d’utilisateur et un mot de passe et renvoi l’instance de l’utilisateur authentifié dans le cas positif, sinon il renvoi null.
Dans le fichier on met le code suivant :
En passe à la perspective Flash , en ouvre l’onglet service , pour qu'on ajoute un nouveau service.
On choisi PHP, puis suivant. Dans la fenêtre suivant on choisi le fichier de classe qu’on vient de créer.
Puis Entrer 2 fois.
S’il y a déjà des services, c’est possible que Flash builder fait automatiquement ce travail des qu’on ajoute le fichier de classe PHP.
Finalement on aura :
Là on a besoin de spécifier les types utilisés.
Pour les types d’entrée : string, string
Pour le type de retour : User. (On n’a pas ce type !!)
Pour créer ce type automatiquement, il suffit de créer un service en se basant sur la table user.
Dans la fenêtre suivant on clique le lien, « cliquez ici pour générer un exemple ».
Dans la fenêtre suivante, on remplie les champs avec les bonnes informations, puis on clique, « connexion à la base de données », on choisi la table user, puis touche entré 3 fois.
Et c’est maintenant qu’on peut configurer les types.
Maintenant on crée un formulaire simple pour passer les informations d’authentification.
On sélectionne le bouton, dans l’onglet des propriétés on lie le click avec l’appel du service.
Maintenant il ne reste que le suivie de l’événement « valeur reçue du serveur », pour y arriver on modifie l’objet automatiquement créé, pour qu’il écoute l’événement souhaité.
Puis on met le traitement dans la méthode loginResult_resultHandler.
Pour que ce dernier code fonctionne, il faut avoir un état «Membre».
Tous droits réservés. O.JMILI
Pour réaliser ce module, on aura besoin d’une table dans la base de données du système, qui contient, au moins, un champ login, un deuxième pour le mot de passe, et un troisième déterminant les privilèges de l’utilisateur. Et bien évidement d’autre champ pour les informations complémentaires sur l’utilisateur. (Nom, date de naissance…).
Maintenant
- Code:
CREATE TABLE IF NOT EXISTS `user` (
`login` varchar(20) NOT NULL,
`pwd` varchar(20) NOT NULL,
`nom` varchar(50) NOT NULL,
`prenom` varchar(100) NOT NULL,
`email` varchar(100) NOT NULL,
`tel` varchar(20) NOT NULL,
`adresse` varchar(300) NOT NULL,
`fonction` int(11) NOT NULL,
PRIMARY KEY (`login`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Maintenant c’est temps d’exploiter ces informations, à travers un script PHP, en utilisant les fonctionnalités de la classe zend_auth du ZF. Ce script, représente le service d’authentification dans le module.
Pour utiliser zend_auth, il faut passer par ce qu’on appelle un adaptateur. Ce dernier permet de gerer un cas precis d’authentification ( notre cas : une base de données). Ici, on vas utiliser Zend_Auth_Adapter_DbTable.
Avant d’appeler la méthode authenticate, qui permet l’authentification, il faut tout d’abord configurer l’adaptateur, en lui passant la connexion (instance d’un adaptateur de connexion avec une base de données), la table d’utilisateurs, la colonne du login, et celle du mot de passe.
Ici,
- Code:
$auth = new Zend_Auth_Adapter_DbTable($cn);
$auth->setTableName('user')
->setIdentityColumn('login')
->setCredentialColumn('pwd');
Ici, $cn c’est une instance de l’adaptateur Zend_Db_Adapter_Pdo_Mysql qui permet la connexion avec une base de données MySQL.
Maintenant
- Code:
$cn = new Zend_Db_Adapter_Pdo_Mysql(array(
'host' => 'localhost',
'username' => 'root',
'password' => '0000',
'dbname' => 'crm'
));
Maintenant on a les bases d’utilisation, l’étape suivant c’est d’implémenter le code du service d’authentification en totalité.
Donc, après avoir créé un projet ZF et flex, on ajoute une classe PHP (perspective php) LoginService.
Notre service prend un nom d’utilisateur et un mot de passe et renvoi l’instance de l’utilisateur authentifié dans le cas positif, sinon il renvoi null.
Dans le fichier on met le code suivant :
- Code:
class LoginService {
public function login($user,$pwd){
$cn = new Zend_Db_Adapter_Pdo_Mysql(array(
'host' => 'localhost',
'username' => 'root',
'password' => '0000',
'dbname' => 'matprof' ));
$auth = new Zend_Auth_Adapter_DbTable($cn);
$auth->setTableName('user')
->setIdentityColumn('login')
->setCredentialColumn('pwd');
$auth->setIdentity($user)
->setCredential($pwd);
$result=$auth->authenticate();
if($result->isValid()){
return $auth->getResultRowObject();
}else{
return null;
}
}
}
En passe à la perspective Flash , en ouvre l’onglet service , pour qu'on ajoute un nouveau service.
On choisi PHP, puis suivant. Dans la fenêtre suivant on choisi le fichier de classe qu’on vient de créer.
Puis Entrer 2 fois.
S’il y a déjà des services, c’est possible que Flash builder fait automatiquement ce travail des qu’on ajoute le fichier de classe PHP.
Finalement on aura :
Là on a besoin de spécifier les types utilisés.
Pour les types d’entrée : string, string
Pour le type de retour : User. (On n’a pas ce type !!)
Pour créer ce type automatiquement, il suffit de créer un service en se basant sur la table user.
Dans la fenêtre suivant on clique le lien, « cliquez ici pour générer un exemple ».
Dans la fenêtre suivante, on remplie les champs avec les bonnes informations, puis on clique, « connexion à la base de données », on choisi la table user, puis touche entré 3 fois.
Et c’est maintenant qu’on peut configurer les types.
Maintenant on crée un formulaire simple pour passer les informations d’authentification.
- Code:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Declarations>
<!-- Placer ici les éléments non visuels (services et objets de valeur, par exemple). -->
</fx:Declarations>
<s:Panel x="290" y="154" width="367" height="200" fontFamily="Times New Roman" fontSize="13">
<mx:Form x="45" y="9" width="269" height="124">
<mx:FormItem label="Utilisateur">
<s:TextInput id="txtUser"/>
</mx:FormItem>
<mx:FormItem label="Mot de passe">
<s:TextInput id="txtPwd" displayAsPassword="true"/>
</mx:FormItem>
<mx:FormItem>
<s:Button label="S'authentifier" id="button" click="button_clickHandler(event)" width="128" fontSize="14" fontWeight="normal" fontStyle="normal" textDecoration="none" lineThrough="false" color="#60655E"/>
</mx:FormItem>
</mx:Form>
</s:Panel>
</s:Application>
On sélectionne le bouton, dans l’onglet des propriétés on lie le click avec l’appel du service.
Maintenant il ne reste que le suivie de l’événement « valeur reçue du serveur », pour y arriver on modifie l’objet
- Code:
<s:CallResponder id="loginResult" result="loginResult_resultHandler(event)"/>
Puis on met le traitement dans la méthode loginResult_resultHandler.
- Code:
protected function loginResult_resultHandler(event:ResultEvent):void
{
if((loginResult.lastResult)!=null){
currentState="Membre";
}else
Alert.show("Nom d'utilisateur ou mot de passe incorrecte");
}
Pour que ce dernier code fonctionne, il faut avoir un état «Membre».
Tous droits réservés. O.JMILI
Jeu 28 Nov - 8:07 par arsenepoutsi
» CCNA version 4 français
Dim 31 Mar - 15:15 par kadhouceeee
» Trés important " Livre exercices en langage C ( claude delannoy) "
Jeu 27 Sep - 16:31 par latifa oustouh
» Ulead VideoStudio 11.5.0157.2 Plus + Crack Collection
Jeu 26 Avr - 9:51 par miloduvi
» Langage IDL(Interface Definition Language)
Mar 27 Sep - 13:02 par Abdelkhalek Bakkari
» demande cours PHP
Jeu 2 Juin - 11:23 par elasriahmed
» exemple page web réaliser avec du html et JavaScript
Lun 30 Mai - 4:05 par ouh.rouchan.zakaria
» cours group2_ 2année 2011
Dim 20 Mar - 15:35 par El Maligno Angelo
» Cours : Infrastructures Réseaux 2003 Server
Mar 15 Fév - 6:55 par jettjackson
» cours officiel de CCNA 2
Mar 18 Jan - 13:53 par agares