Avec Action Security de Symfony, si un utilisateur n'a pas été identifié, il sera redirigé vers l'action de connexion par défaut définie dans le fichier settings settings.yml. Comment rediriger l'utilisateur vers l'action initialement demandée après que l'utilisateur a été authentifié avec succès?Symfony Action Security - Comment transférer après une authentification réussie?
Répondre
Le premier coup à votre action de connexion, magasin referer à la session de l'utilisateur:
if(!$this->getUser()->hasParameter('referer'))
{
$this->getUser()->setParameter('referer',$this->getRequest()->getReferer());
}
puis lorsque la connexion réussit, rediriger l'utilisateur à referer stockée avec:
$this->redirect($this->getUser()->getParameter('referer'));
Vous avez exemple complet en sfGuardPlugin:
Plus simplement ...
$this->getUser()->setReferer($this->getRequest()->getReferer());
comme
setReferer($referer)
{
if (!$this->hasAttribute('referer'))
$this->setAttribute('referer', $referer);
}
Un problème connexe, mais au lieu d'essayer de réaliser l'avant d'une autre action:
Si vous avez une action protégée par sfGuard qui est Si vous tentez de rediriger vers le référent, vous obtiendrez une boucle de redirection après vous être connecté. En effet, la page de connexion de sfGuard deviendra le référent. Un paramètre ou un attribut peut être sauvegardé sur plusieurs requêtes s'il est stocké dans l'action de connexion comme ci-dessus, ce qui signifie que l'action redirige vers une page incorrecte si elle est déjà connectée. La solution est d'utiliser un flash qui sera oublié. Ceci peut être accompli avec le code suivant dans la méthode executeSignin de sfGuardAuthActions:
if ($this->getUser()->hasFlash('referer'))
{
$this->getUser()->setFlash('referer', $this->getUser()->getFlash('referer'));
}
else
{
$this->getUser()->setFlash('referer', $this->getRequest()->getReferer());
}
En redéfinissant le flash dans le premier bloc, il ne sera pas oubliée entre les tentatives de connexion, et en utilisant un flash, connectez-vous à partir de les autres pages ne peuvent pas interférer avec votre action.
- 1. Comment rediriger une page après une validation réussie avec form_remote_for()?
- 2. Quelle est la différence entre rediriger et transférer dans Symfony?
- 3. Exécution d'une action après une opération RowSort
- 4. Création d'une authentification personnalisée avec Acegi/Spring Security
- 5. Comment accéder aux sous-chaînes capturées après une correspondance regex réussie en Perl?
- 6. Symfony: ajout d'une nouvelle action/erreur de vue. (Newb question)
- 7. Ajout d'un flash après authentification avec merb-auth
- 8. Comment transférer une classe interne?
- 9. jQuery: Actualiser div après une autre action jquery?
- 10. Action personnalisée après le rejet de ABPeoplePickerNavigationController
- 11. l'insertion de valeurs supplémentaires immédiatement après une insertion réussie en utilisant PHP + MySQL
- 12. Comment formater une URL externe dans Symfony?
- 13. Avoir une action retardée après avoir cliqué sur un formulaire
- 14. Dans Symfony, comment utiliser l'aide url_for dans une classe?
- 15. Comment pouvez-vous passer un paramètre d'une action à la mise en page Symfony
- 16. SharePoint (MOSS 2007) Authentification de formulaires réussie redirige vers le nom de l'ordinateur
- 17. Est-il possible de transférer l'identité FormsAuthentication de l'utilisateur actuel vers une autre action du contrôleur?
- 18. Comment transférer une propriété en C++/CLI?
- 19. Modèle non trouvé dans la méthode d'action après l'appel d'une méthode de bibliothèque dans symfony
- 20. Url Routage avec symfony
- 21. Effacement du cache Symfony pour une autre application
- 22. symfony rediriger avec 2 paramètres
- 23. phpmyadmin security
- 24. Copier tous les fichiers dans la solution à un autre endroit après la construction réussie
- 25. Spring.NET Security Framework
- 26. Postback Security
- 27. WebPart security
- 28. Comment exécuter une action personnalisée APRÈS la suppression de fichiers lors de la désinstallation de MSI?
- 29. Symfony Sandbox 1.2 renvoie une page vierge après le déballage dans le dossier Web
- 30. Transférer une catégorie dans MediaWiki
J'ai rencontré des problèmes lors de l'utilisation de l'attribut avec le nom 'referer'. L'utilisation d'un nom différent a résolu le problème. – Druckles