Création d'un URL Shortener - Authentification
On fait du classique, les utilisateurs doivent s’enregistrer/s’authentifier pour avoir accès à notre raccourcisseur d’url.
Une fois l’installation de Laravel réalisée, il nous faut gérer l’authentification (inscription, connexion, …).
L’authentification
Laravel a quelque peu évolué dans sa gestion de l’authentification.
Au départ inclus dans l’application, Laravel a déporté toute la logique dans un package nommé laravel/ui
. Via des commandes artisan, il était possible de générer non seulement les controlleurs, les routes, etc… mais aussi de sortir le front en couplant bootstrap
à un framework js de son choix (vuejs
/ react
).
Mais ça c’était avant Laravel 8.
Jeatstream
laravel-ui
passe en déprécier au profit d’un nouveau package : laravel/jeatstream
.
Au menu quelques nouvelles fonctionnalités (la double authentification par exemple), mais surtout 2 stack possibles pour générer le front :
- Blade + Livewire
- Inertia + VueJS
On va ici partir sur le 1er choix (je connais VueJS et c’est donc l’occasion de découvrir LiveWire).
Il nous faut donc une nouvelle dépendance :
Ensuite, on initialise notre stack avec Livewire :
Si on s’intéresse à cette commande, on s’aperçoit que cela installe deux nouvelles dépendances :
- Livewire
- Sanctum
Ce dernier contient tout le code métier de l’authentification.
La commande a également modifié le fichier des dépendances javascript (package.json), celui de la compilation (webpack.mix.js) et ajouter un fichier tailwind.config.js. Vous l’avez compris, il nous faut maintenant les installer et lancer la compilation.
Dernière étape, il nous faut “migrer”, c’est à dire construire notre base de données. Pour gagner du temps, on va utiliser une base sqlite
ce qui implique deux choses :
- la création d’un fichier database.sqlite :
- et la modification du fichier
.env
:
Et on lance la migration :
A ce moment là, tu peux rafraîchir ta home dans ton navigateur et un menu Login / register a été rajouté. La page login ressemble à ça :
Ok, on va créer notre premier user pour voir la suite. On va modifier le fichier database/seeders/DatabaseSeeder.php
:
On execute :
Et on retourne se connecter.