Bonjour,

Je n'arrive pas à comprendre le lien entre jwt et make:user, auth et registration-form.

Ce que je fais

Apprendre API REST avec Symfony, jwt.

Ce que je veux

Je cherche à comprendre comment lier/utiliser jwt avec make:user, auth et registration, parce que là c'est le brouillard.
Si on utilise jwt a t-on encore besoin d'utiliser make:user et d'utiliser un mot de passe encodé qui sera mis dans la bdd ? Doit-on encore utiliser make:auth et make:registration-form si on utilise jwt ? Désolé de mes questions assez peu explicite mais je suis un peu perdu avec ce jwt.

Si vous pouviez m'aider à y voir plus claire.

Ce que j'obtiens

Je suis dans le brouillard avec ce jwt.

2 réponses


Bonjour,

Le bundle LexikJWTAuthenticationBundle sert à s'authentifier sur une api avec un Jwt token.
Après avoir envoyé un couple login/password et si l'authentification est réussie, le bundle va créer un token contenant les informations de l'utilisateur et va le signer avec la clé privée. A chaque requête il faut joindre le token afin d'authentifier l'utilisateur courant, le bundle vas vérifier si la signature du token est bonne, dans ce cas il charge l'utilisateur qui correspond. Il n'y as pas de session avec ce système.

La fonction make:user est une fonction afin de créer l'entité User qui sera la base pour l'authentification de vos utilisateurs.
C'est le point de départ.

La fonction make:auth permet de créer la logique pour s'authentifier sur votre application comme par exemple le formulaire de login et la route de logout ou aussi ajouter des actions après qu'un User se soit loggé. C'est bien expliqué sur la doc: https://symfony.com/doc/current/security/form_login_setup.html
Dans le cas d'une authentification par jwt cette partie n'est pas nécéssaire.

Pour make:registration-form c'est uniquement pour créer un formulaire d'inscription à votre application.

hbx360
Auteur

Bonsoir ,
Merci pour ta réponse, mais quand on utilise jwt est-ce qu'on doit faire un UserController ou un UserType pour récupérer et encoder le mot de passe et ensuite l'envoyer à la table User ? Et concernant le formulaire d'inscription, il n'y a pas besoin de se préocuper du jwt, je peux utiliser le formulaire d'inscription comme s'il n'y avait pas de jwt ; le mot de passe sera créé automatiquement et le jwt n'interviendra pas dans le processus. C'est bien ça, le mot de passe sera encodé ?

Comme j'ai fait un make:auth, est-ce que je peux supprimer les fichiers :
created: src/Security/LoginFormAuthenticator.php
created: src/Controller/SecurityController.php
created: templates/security/login.html.twig

Ou est-ce que ce serait superflux de le faire ?