Lorsqu'on installe Jetstream, on n'obtient pas seulement une authentification complète avec enregistrement, connexion et déconnexion, vérification de l'email, oubli du mot de passe, comme on l'a vu dans les deux articles précédents. On obtient beaucoup plus comme on va le voir dans cet article. Déjà une gestion du profil de l'utilisateur qui peut ainsi modifier ses données personnelles, mais également la possibilité de passer par une authentification à deux facteurs qui devient de plus en plus à la mode. L'utilisateur peut en plus supprimer sa session ou carrément son compte. On verra par ailleurs la possibilité de demander la confirmation du mot de passe pour l'accès à des pages sensibles. Pour terminer, j'évoquerai aussi les API.
Le dashboard
On a vu que lorsqu'un utilisateur est connecté, il arrive dans le dashbord (pour mémoire, on verra plus tard dans ce cours l'aspect localisation pour changer toutes ces appellations dans notre langue préférée). Par défaut sur la page, on trouve des renseignements et des liens de Laravel et dans la partie supérieure cet aspect :
On a un menu déroulant à droite en cliquant sur l'image (par défaut, on a les deux premiers caractères du nom, mais on va pouvoir mettre une vraie image) :
Là, on peut procéder à 2 actions :- accéder au profil
- se déconnecter
Le profil
Quand on accède au profil, c'est assez fourni.Les informations personnelles
Là, on peut modifier le nom et l'email. Pour pouvoir également intervenir au niveau de la photo, il faut activer l'option dans le fichier config.jetstream.php :
'features' => [
// Features::termsAndPrivacyPolicy(),
Features::profilePhotos(),
// Features::api(),
// Features::teams(['invitations' => true]),
Features::accountDeletion(),
],
Maintenant, on y a accès :
La photo
Pour la gestion de la photo, Jetstream ajoute à son installation le trait Laravel\Jetstream\HasProfilePhoto dans le modèle User :
use Laravel\Jetstream\HasProfilePhoto;
...
class User extends Authenticatable
{
...
use HasProfilePhoto;
Si on regarde ce trait, on y trouve une intendance complète pour gérer la photo. Comme il s'agit d'un trait, on peut surcharger les méthodes dans le modèle pour modifier ou ajouter des fonctionnalités.
Quand on charge une photo, elle est placée provisoirement ici : À la sauvegarde, elle est placée là :J'ai déjà parlé dans cet article de la gestion des fichiers de Laravel. Jetstream utilise le disque public pour la gestion des photos (sauf si on utilise Vapor, dans ce cas, on va sur S3). Si on crée un lien symbolique tel que c'est préconisé dans la documentation, on va dans le dossier storage.
Le mot de passe
On peut aussi modifier le mot de passe à partir du profil :L'authentification à deux facteurs
Une autre possibilité intéressante est d'activer l'authentification à deux facteurs (A2F). Pour mémoire, avec ce type d'authentification, on ne se contente plus du login et du mot de passe, mais il faut également une information de sécurité transmise par un autre moyen (application, email, sms...). Ce type de sécurité devient de plus en plus répandue et on parle même maintenant de triple facteur ! Voyons comment Jetstream met cela en place...
Dans le profil, on peut activer cette sécurité : Toujours par sécurité, le mot de passe est réclamé : On obtient cet affichage :On obtient un QR code pour Google Authenticator (ou autre) pour finir l'opération.
Abandon de session
Dans le profil, on a aussi la possibilité de purger la session :Suppression de compte
Enfin, on peut dans le profil supprimer son compte :Les API
Jetstream est équipé pour l'utilisation de Laravel Sanctum, qui est un package pour Laravel qui permet de mettre en place simplement des API à partir de l'utilisation de tokens. Un utilisateur peut générer des tokens qui permettent un accès à une API avec des permissions bien définies. Sanctum est installé en même temps que Jetstream et est donc directement disponible.
Vous pouvez activer l'option dans le fichier config.jetstream.php :'features' => [
// Features::termsAndPrivacyPolicy(),
Features::profilePhotos(),
Features::api(),
// Features::teams(['invitations' => true]),
Features::accountDeletion(),
],
La commande apparaît alors dans le menu :
Jetstream propose une interface simple pour la génération des tokens et de leurs permissions :
Quand on crée un token une fenêtre s'ouvre et il faut copier le token qui n'apparaitra que là :
On a la liste des tokens disponibles :
On peut supprimer un token ou changer ses permissions :
Il y a un trait installé par Jetstream dans le modèle User pour le fonctionnement de ces tokens :
use Laravel\Sanctum\HasApiTokens;
...
class User extends Authenticatable
{
use HasApiTokens;
Dans le code, on peut vérifier ce token :
$request->user()->tokenCan('update');
Conclusion
On a vu dans cet article que Jetstream permet une gestion du profil de l'utilisateur :- informations personnelles
- photo
- mot de passe
- authentification à deux facteurs
- abandon de session
- suppression de compte
Par bestmomo
Aucun commentaire