11
2010
Complément Zend_Auth et Zend_Session
Je viens de voir que j’ai oublié de vous parler de la variable de session créée lors de l’identification. Il faut savoir que Zend gère les variables de session de façon sécurisée. Autant vous pouvez en PHP standard modifier vos données avec un $_SESSION[“foo“], autant avec Zend, ces données sont sauvegardées dans un objet protégé qui lui, est stocké dans $_SESSION[].
Pour vous faire une idée, vous ne pouvez pas modifier accidentellement une donnée. Il faudra absolument passer par la classe Zend_Session pour les modifier.
Enfin, ici je vais vous montrer comment modifier le contenu di site en fonction de la connexion d’un visiteur. S’il est connecté, des menus apparaîtrons, sinon, d’autres seront présents.
Maintenant que l’introduction est finie, je vais juste vous faire faire une chose supplémentaire au tutoriel d’identification.
Quand le visiteur est déconnecté, le lien ‘identifiez-vous’ apparaît. Quand il est connecté, ce lien sera remplacé par ‘déconnexion’.
Tout ceci va se jouer dans la fichier header.phtml qui compose notre Layout. Au final, il devrait ressembler juste à ceci :
/application/layout/header.phtml
| HTML | | copy code | | ? |
| 01 | <div id="header"> |
| 02 | Tutoriel ZF |
| 03 | </div> |
| 04 | <div id="liensheader"> |
| 05 | <a href="<?php echo $this->BaseUrl(); ?>"><span>Accueil</span></a> |
| 06 | <?php |
| 07 | $auth = $this->getAuth('admin'); |
| 08 | if($auth) |
| 09 | { |
| 10 | ?> |
| 11 | <a href="<?php echo $this->url(array('module' => 'admin' ,'controller' => 'index', 'action' => 'logout'), "", true); ?<"><span>Déconnexion</span></a> |
| 12 | <?php |
| 13 | }else{ |
| 14 | ?> |
| 15 | <a href="<?php echo $this->url(array('module' => 'admin' ,'controller' => 'index', 'action' => 'index'), "", true); ?>"><span>Identifiez-vous</span></a> |
| 16 | <?php } ?> |
| 17 | </div> |
Tout d’abord, allez modifier le bootstrap en ajoutant la fonction suivante :
/application/Bootstrap.php
| PHP | | copy code | | ? |
| 1 | protected static function _initNamespaces() |
| 2 | { |
| 3 | $autoloader = Zend_Loader_Autoloader::getInstance(); |
| 4 | $autoloader->registerNamespace('App_'); |
| 5 | } |
Ensuite, pour que Zend_View trouve nos différentes aides de vue automatiquement, nous allons rajouter la ligne suivante dans _initView() :
| PHP | | copy code | | ? |
| 1 | $view->addHelperPath('App/View/Helper/', 'App_View_Helper'); |
Voilà. Maintenant que notre Library App existe, voici la première classe présente :
/library/App/View/Helper/GetAuth.php :
| PHP | | copy code | | ? |
| 1 | class App_View_Helper_GetAuth |
| 2 | { |
| 3 | function getAuth($namespace=null) |
| 4 | { |
| 5 | $auth = Zend_Auth::getInstance()->setStorage(new Zend_Auth_Storage_Session($namespace)); |
| 6 | return $auth->getInstance()->getIdentity(); |
| 7 | } |
| 8 | } |
Cette classe va nous retourner les informations e la personne authentifiée. Comme indiquée dans le précédent article, à la fin Zend_Auth va stocker, dans une variable de session, toutes les informations du membre mis à par son mot de passe. Comme ceci, nous testons si la variable est vide ou pas. Si elle est vide, l’utilisateur n’est pas connecté, sinon, il est bien présent. Vu que nous demandons de stocker les informations dans le Namespace de session ‘admin’, nous le renseignons dans les paramètres de getAuth().
Voilà, j’espère que ce complément vous a été utile.
Articles Connexes
Laisser un commentaire
Catégories
- Actualités (11)
- Android (5)
- Bases de Données (4)
- Développement (1)
- PasteQR (2)
- PHP (8)
- Systèmes et Réseau (5)
- Technologies Web (5)
- Tests (2)
- Zend Framework (30)
Commentaires récents
- (@Fritte7) (@Fritte7) dans PasteQR passe en 1.1.0
- roux dans ZendX Jquery Dialog
- Fritte7 dans Gérer des évènements dans une listview.
- Fierfeu dans Introduction à Zend Framework 2.0
- Christophe B. dans Gérer des évènements dans une listview.
Mots-Clefs
Active Directory AJAX Android Apache2 APC Bootstrap Chrome Configuration CSS Eclipse Firefox Google html HTTP Installation Internet Internet Exporer Java Javascript JQuery JQuery UI Linux Mémoire Mac MySQL Navigateur Opera PDO Pear Phing PHP Safari SGBD SMTP SQL Ubuntu View Helper Windows Server XML Zend Cache Zend DB Zend Form Zend Framework ZendX ZF 2.0
WP Cumulus Flash tag cloud by Roy Tanck requires Flash Player 9 or better.

Publié par Throrïn




