Avantages de l'utilisation du passeport Laravel:
Le protocole OAuth2 peut être intégré à l'application Laravel en utilisant le mot de passe Laravel. Lorsque l'utilisateur souhaite récupérer ou insérer des données à partir de l'application, la demande d'accès sera envoyée par ce protocole. L'autorisation sera accordée à l'utilisateur en autorisant l'utilisateur pour accéder. Certains avantages majeurs de l'authentification des passeports sont mentionnés ci-dessous.
Conditions préalables:
Vous devez effectuer la tâche suivante avant d'installer et d'utiliser Laravel Passport pour l'authentification des utilisateurs.
Installez le passeport Laravel:
Exécutez la commande suivante à partir du terminal pour installer le package de passeport Laravel à l'aide du compositeur.
$ compositeur a besoin de Laravel / Passeport
Vous aurez besoin de créer le utilisateurs table dans la base de données avant d'installer le package passeport. Trois fichiers de migration et un Utilisateur Le modèle a été généré automatiquement lorsqu'un nouveau projet Laravel crée. L'un d'eux est utilisé pour créer un utilisateurs tableau. Accédez au dossier Laravel Project et exécutez la commande migrate suivante pour créer le utilisateurs tableau.
$ php artisan migrerExécutez la commande suivante pour installer le package passeport pour le projet.
$ php artisan passeport: installerVous obtiendrez les informations suivantes après avoir installé Laravel Passport avec succès dans votre projet. Ici, deux clés secrètes sont générées. Un pour Client d'accès personnel et un autre pour Client de la subvention de mot de passe.
Configuration du passeport Laravel:
Ouvrir le Utilisateur modèle qui est situé à l'emplacement, App \ Modèle.php à partir d'un éditeur, et modifiez le modèle comme ci-dessous. Ajouter Laravel \ Passport \ Hasapitokens au début de la classe et utilisez des hasapitokens et notifiable à l'intérieur de la classe.
application d'espace de noms;Ensuite, ouvrez application / fournisseurs / AuthServiceProvider.php Pour enregistrer les itinéraires nécessaires pour émettre et révoquer les jeton d'accès. Passport :: Routes La méthode est appelée dans la méthode de démarrage de AuthServiceProvider. Modifiez le contenu du fichier illustré ci-dessous.
Namespace App \ Providers;Ensuite, ouvrez config \ app.php et insérer la ligne suivante dans le fournisseurs Array pour inclure la classe nécessaire pour utiliser Laravel Passport.
Laravel \ Passport \ PassportServiceProvider :: Classe,Ensuite, ouvrez config \ auth.php et définir le conducteur de l'API à passeport dans le gardes tableau illustré ci-dessous.
'gardes' => [Implémentez le contrôleur pour l'enregistrement et l'authentification:
Vous devez créer un contrôleur pour implémenter le système d'authentification à l'aide du package Passeport. Exécutez la commande suivante à partir du dossier racine du projet pour créer Apicontreur.
$ PHP Artisan Make: Controller ApiControllerDans la partie suivante de ce tutoriel, trois méthodes sont ajoutées à l'intérieur du Apicontreur Pour créer un nouvel utilisateur, authentifiez un utilisateur et obtenez les informations détaillées d'un utilisateur authentifié.
UN. Enregistrer
Un nouvel utilisateur peut être créé dans le utilisateurs table en implémentant un enregistrer() méthode. Ajouter le code suivant à l'intérieur du Apicontreur Pour implémenter l'API Register. Les valeurs de champ nécessaire pour la création d'un nouvel utilisateur sont récupérées par l'argument, $ demande de la méthode enregistrer(). Validateur La classe est utilisée pour vérifier que les valeurs de champ sont valides ou non en fonction des règles de validation définies. Si la échoue() la méthode renvoie true puis il renverra un message d'erreur au format JSON. Si la échoue() La méthode renvoie false puis un mot de passe de hachage générera et de nouvelles informations utilisateur seront insérées dans le tableau des utilisateurs. Un jeton sera généré après la création du nouvel utilisateur et un message de réussite avec une valeur de jeton sera retourné.
Registre des fonctions publiques (demande $ demande)B. Connexion:
Tout utilisateur peut être authentifié en implémentant le connexion () méthode. Ajouter le code suivant à l'intérieur Apicontreur Pour implémenter une API de connexion. Les champs requis pour authentifier un utilisateur sont récupérés à partir du $ demande de le connexion () méthode. tentative() la méthode vérifiera les valeurs de e-mail et mot de passe pour l'authentification. Si les valeurs correspondent aux valeurs du utilisateurs Tableau puis l'enregistrement de cet utilisateur particulier sera récupéré et une valeur de jeton sera renvoyée. Si l'authentification échoue, un Non autorisé Le message sera retourné.
Connexion de la fonction publique (demande $ demande)C. Détail de l'utilisateur
Vous pouvez obtenir les informations détaillées de tout utilisateur après l'authentification en implémentant l'API utilisateur. Ajouter le code suivant dans le Apicontreur Pour récupérer les informations détaillées de tout utilisateur authentifié.
fonction publique user_info ()Voie de l'API pour le contrôleur:
Ouvrir le Routes \ App.php Fixez et modifiez le contenu avec les codes suivants pour définir l'itinéraire de connexion, enregistrer l'itinéraire et détailler l'itinéraire pour les services API.
/ ** itinéraire pour la connexion API * /Exécutez la commande suivante pour démarrer le serveur de développement Laravel.
$ php artisan ServeTestez l'authentification de l'API à l'aide de Postman:
Postman est un outil très utile pour tester les API reposantes. La demande HTTP peut être générée très facilement pour tester les fonctionnalités de l'API en utilisant l'interface utilisateur de cette application sans écrire une grande quantité de code pour envoyer des demandes. Postman peut gérer diverses demandes HTTP et utilitaires pour développer des API. Il a des versions à la fois payantes et gratuites pour Linux.
Installer l'agent Postman:
Exécutez la commande suivante à partir du terminal pour installer un agent Postman sur Ubuntu.
$ sudo snap install PostmanOuvrez l'application après l'installation. L'interface suivante apparaîtra après avoir ouvert la nouvelle fenêtre du facteur.
API du registre de test:
Clique sur le créer une demande lien pour ouvrir la fenêtre de demande. Laravel Development Server s'exécute au port 8000 Par défaut qui est utilisé ici. Si vous utilisez un port différent, vous devez modifier le numéro de port dans votre URL. La méthode du post est sélectionnée dans la liste déroulante et l'URL suivante est utilisée pour envoyer une demande API pour le registre API.
http: // localhost: 8000 / api / registre
Trois champs sont définis comme des champs obligatoires pour le utilisateurs table pour créer un nouvel utilisateur. Ceux-ci sont nom, e-mail, et mot de passe. Définissez trois touches et valeurs pour ces champs illustrés ci-dessous et cliquez sur le envoyer bouton. Le enregistrer() méthode de Apicontreur sera appelé conformément à l'itinéraire si la demande est envoyée correctement.
La réponse suivante apparaîtra si le nouvel enregistrement utilisateur est inséré avec succès dans le utilisateurs tableau. Le code de réponse, 200 indique que la demande HTTP a été réussie et qu'un jeton est généré après avoir inséré le nouvel utilisateur qui est montré dans le corps de réponse au format JSON.
API de connexion à tester:
Sélectionnez le POSTE méthode comme le Enregistrer l'API qui est montré avant. Définissez l'URL suivante dans la barre d'adresse pour envoyer une demande API pour API de connexion.
http: // localhost: 8000 / api / connexion
Deux champs sont obligatoires pour authentifier tout utilisateur en fonction des enregistrements du utilisateurs tableau. Ceux-ci sont e-mail et mot de passe. Définissez deux touches et valeurs pour ces champs illustrés ci-dessous et cliquez sur le envoyer bouton. Le connexion() méthode de Apicontreur sera appelé conformément à l'itinéraire si la demande est envoyée correctement.
La réponse suivante apparaîtra si l'utilisateur est authentifié avec succès en fonction des enregistrements du utilisateurs tableau. Le code de réponse, 200 indique que la demande HTTP a réussi. La valeur de jeton est générée après l'authentification de l'utilisateur et renvoie le corps de réponse au format JSON.
Vous obtiendrez le corps de réponse suivant lorsque les mauvaises informations d'identification seront fournies pour authentifier l'utilisateur. 401 Le code d'erreur est généré ici pour indiquer un accès non autorisé.
API Détails de l'utilisateur de test:
Certains paramètres d'en-tête sont tenus de configurer avant d'envoyer l'API de demande de détails. Clique sur le têtes Onglet de la section de demande et ajoutez trois valeurs d'en-tête pour identifier l'utilisateur authentifié. La valeur de jeton est copiée à partir du corps de réponse et définie pour la valeur d'autorisation.
Accepter: Application / JSONLa section des en-têtes de la partie de la demande sera ressemblée à l'image suivante. Vous devez définir votre valeur de jeton générée dans le corps de réponse de votre agent de facteur.
Ensuite, cliquez sur le Autorisation Onglet de la section de demande et sélectionnez Jeton de support comme type d'autorisation du Taper menu déroulant.
Maintenant, sélectionnez le POSTE Méthode, définissez l'URL suivante dans la barre d'adresse. Il appellera le informations utilisateur() méthode de Apicontreur qui récupérera les informations détaillées de l'utilisateur authentifié.
http: // localhost: 8000 / API / DétailsSi la valeur du jeton et les informations d'en-tête sont fournies correctement, les détails de cet utilisateur seront retournés en tant que corps de réponse au format JSON comme l'image suivante.
Didacticiel vidéo
Conclusion:
L'authentification du passeport utilise maintenant dans de nombreux sites Web Laravel pour ses fonctionnalités utiles. Il rend le système d'authentification Laravel plus sécurisé que l'authentification par défaut et fournit d'autres services qui ne sont pas disponibles dans l'authentification par défaut. Les utilisations de base du passeport Laravel avec le processus d'installation et de configuration sont correctement décrites dans ce tutoriel. L'utilisation de l'agent Postman est également présentée ici pour tester l'API. J'espère que le lecteur comprendra les fonctionnalités du package des passeports après avoir lu ce tutoriel.