Bonjour,
Je cherche comment faire en sorte que l'utilisateur du site soit identifié avant de naviguer sur l'application:
il ne doit pas accéder à une url tant qu'il est anonyme.
Donc bien sûr, ma page d'accueil est un formulaire de login !
Mais si l'utilisateur entre une url valide et qu'il n'est pas connecté, il doit être redirigé vers la page d'accueil.
Au début , j'avais naïvement répété du code: pour chaque route, j'avais dans mes fonctions :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 if (!$this->getUser()) { return $this->redirectToRoute('app_login'); }
Pas Bien , je sais. Alors sur dans le fichier security.yaml, j'ai rajouté un pattern:
Code yaml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 main: pattern: ^/ lazy: true provider: app_user_provider custom_authenticator: App\Security\AppAuthenticator logout: path: app_logout # where to redirect after logout target: app_login
Et ça marche, mais je doute que ce soit une bonne pratique !
Peut-on faire autrement ( oui , j'imagine ) et comment, la meilleure façon de faire... ?
Autre soucis, je ne sais pas s'il y a un rapport avec ma méthode, mais:
si je tente en étant non connecté d'accéder à une page de suppression d'un utilisateur https://127.0.0.1:8000/user/3/delete,
je suis dans un premier temps redirigé vers la page d'accueil/login.
Mais lorsque je me connecte sur cette page, la fonction associée à l'url d'avant s'exécute: l'utilisateur 3 est supprimé !!!
Et là, j'avoue ne pas comprendre pourquoi .
Alors, je prends toutes les suggestions de bonne pratique dans le domaine, car je suis encore débutant...
Merci à vous
Laurent.
Partager