Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Je me présente, je m'appelle Michwii, je suis nouveau dans la communauté Zend.
J'ai un petit soucis de conception, vous pourriez peut être m'aider...
J'ai crée un projet comprenant 3 modules :
Un module d'authentification.
Un module contenant le projet en lui même (Main).
Un module d'installation.
Ce que j'aimerai maintenant c'est faire en sorte que le module contenant le projet en lui même ne puisse démarrer que s'il arrive à détecter la présence d'une session d'authentification.
Cette même session d'authentification ne pourra être créée que par le module d'authentification.
Si la session n'a pas été créée le module main redirigera vers l'url /authentification (adresse du module d'authentification)
Si la session est présente il se lancera normalement.
Comment faire en sorte de vérifier avant chaque appel de page du module Main que la session à déjà été créée ?
Dois je ajouter une vérification sur chaque action de mes controllers ?
Est-ce que je peux uniquement faire la vérification dans la méthode onBootStrap ?
Merci d'avance pour vos réponses.
Je vous souhaite une bonne journée
Hors ligne
Regarde du coté de https://github.com/ZF-Commons/ZfcUser . Un module d'authentification pour zf2.
Hors ligne
Merci de ta réponse Nirzol
Du coup je télécharge ce module, je suis les instructions d'installation...
Maintenant lorsque je vais sur mon module Main à l'adresse /main, comment je fais pour vérifier que l'authentification dans le module ZfcUser c'est bien déroulé ?
Ça le fait automatiquement ? Il va me rediriger vers le module ZfcUser ?
Merci d'avance.
Dernière modification par michwii (25-01-2013 11:55:45)
Hors ligne
Tu as un peu de doc ici : https://github.com/ZF-Commons/ZfcUser/wiki
Notamment le morceau : How to check if the user is logged in
Hors ligne
Super c'est exactement ce que je voulais
Je résume, je peux donc check au niveau de la vue, ou du controller (pas faisable dans mon cas), ou au niveau du service manager.
<?php $sm = $app->getServiceManager(); $auth = $sm->get('zfcuser_auth_service'); if ($auth->hasIdentity()) { echo $auth->getIdentity()->getEmail(); } ?>
Dernière question, où se met cette partie de code ?
Merci d'avance
Hors ligne
Non tu ne peux pas le faire au niveau du service manager. En fait le service manager est un outil qui permet de gérer tes services qui va les instancier lui même en fonction de ce que tu as configuré etc ... Ce que fait le bout de code actuel c'est demander au service manager la classe qu'il a instancié qui a pour "nom" 'zfcuser_auth_service' et sur cette classe le code test si l'utilisateur a une session d'ouverte.
Pour ce que tu veux je pense qu'il faut que tu utilises un système de contrôle des accès. Il me semble que maintenant c'est RBAC l'officiel pour ZF2, il y a un module à cet effet pour en simplifier l'utilisation. Tu peux sinon dans ton Module.php lancer un évènement (au niveau du onBootstrap) sur le routage par exemple. Donc à toi de trouver l'évènement qui te convient pour le faire et ainsi laisser filer la route si l'utilisateur est connecté sinon le rediriger.
Hors ligne
Pages: 1