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.