laravel

Tutoriel sur le passeport Laravel

Tutoriel sur le passeport Laravel
Plusieurs fonctionnalités d'authentification sont implémentées dans Laravel version 5.2. Différents systèmes d'authentification sont nécessaires pour mettre en œuvre différentes routes qui prenaient du temps et étaient inefficaces. Le même système d'authentification peut être utilisé pour la toile et API en utilisant une fonction d'authentification basée sur des jetons. Mais ce système d'authentification n'est pas plus sécurisé pour l'application. Désormais, le système d'authentification de l'application Laravel peut être sécurisé en utilisant le nouveau Passeport fonction d'authentification de Laravel. Il utilise deux ENV qui sont les secrets du passeport Laravel OAUTH API. Ce sont API_CLIENT_ID et API_CLIENT_SECRET. Un jeton d'accès est généré pour chaque utilisateur lorsque le passeport Laravel est utilisé et permet à l'utilisateur d'accéder à certains points de terminaison sécurisés. Comment vous pouvez créer un système d'authentification API sécurisé en utilisant le passeport Laravel et accéder au contenu autorisé sont présentés dans ce didacticiel.

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 de l'application alors la demande d'accès sera envoyée par ce protocole. L'autorisation sera donnée à l'utilisateur en autorisant l'utilisateur à accéder. Certains des principaux avantages 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 Laravel Passport à l'aide du composeur.

$ compositeur nécessite laravel/passeport

Vous devrez créer le utilisateurs table dans la base de données avant d'installer le package passeport. Trois fichiers de migration et un Utilisateur modèle ont été générés automatiquement lorsqu'un nouveau projet Laravel crée. L'un d'eux est utilisé pour créer un utilisateurs tableau. Accédez au dossier du projet Laravel et exécutez la commande migrate suivante pour créer le utilisateurs tableau.

$ php artisan migrer

Exécutez la commande suivante pour installer le package de passeport pour le projet.

$ php artisan passeport:installer

Vous obtiendrez les informations suivantes après avoir installé avec succès le passeport Laravel 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 d'octroi de mot de passe.

Configuration du passeport Laravel :

Ouvrez le Utilisateur modèle qui se trouve à l'emplacement, Application\modèle.php depuis un éditeur, et modifiez le modèle comme ci-dessous. Ajouter Laravel\Passeport\HasApiTokens au début de la classe et utilisez HasApiTokens et Notifiable à l'intérieur de la classe.

application d'espace de noms ;
utilisez Illuminate\Contracts\Auth\MustVerifyEmail ;
utilisez Illuminate\Foundation\Auth\User comme authentifiable ;
utilisez Illuminate\Notifications\Notifiable ;
//Ajouté ici
utilisez Laravel\Passport\HasApiTokens ;
classe L'utilisateur étend Authentifiable

//Modifié ici
utiliser HasApiTokens, à notifier ;
/**
* Les attributs qui sont assignables en masse.
*
* @var tableau
*/
protégé $ remplissable = [
'nom', 'email', 'mot de passe',
] ;
/**
* Les attributs qui doivent être masqués pour les tableaux.
*
* @var tableau
*/
protégé $caché = [
« mot de passe », « remember_token »,
] ;
/**
* Les attributs qui doivent être convertis en types natifs.
*
* @var tableau
*/
$casts protégés = [
'email_verified_at' => 'dateheure',
] ;

Ensuite, ouvrez app/Providers/AuthServiceProvider.php pour enregistrer les routes nécessaires à l'émission et à la révocation des jetons d'accès. La méthode Passport::routes est appelée dans la méthode de démarrage de AuthServiceProvider. Modifier le contenu du fichier ci-dessous.

espace de noms App\Fournisseurs ;
utilisez Illuminate\Foundation\Support\Providers\AuthServiceProvider en tant que ServiceProvider ;
utilisez Illuminate\Support\Facades\Gate ;
//le passeport est ajouté ici
utilisez Laravel\Passport\Passport ;
la classe AuthServiceProvider étend ServiceProvider

/** Les mappages de politique pour l'application.
*
* @var tableau
*/
$policies protégées = [
'App\Model' => 'App\Policies\ModelPolicy',
] ;
/**
* Enregistrez tous les services d'authentification / autorisation.
*
* @retour nul
*/
fonction publique boot()

$this->registerPolicies();
Passeport::routes();
Passport::tokensExpireIn(now()->addDays(15));
Passport::refreshTokensExpireIn(now()->addDays(30));

Ensuite, ouvrez configuration\application.php et insérez la ligne suivante dans le fournisseurs tableau pour inclure la classe nécessaire pour utiliser le passeport Laravel.

Laravel\Passport\PassportServiceProvider::class,

Ensuite, ouvrez config\auth.php et définissez le pilote de l'API sur passeport dans le gardes tableau ci-dessous.

'gardes' => [
'web' => [
'pilote' => 'session',
'fournisseur' => 'utilisateurs',
],
'api' => [
'conducteur' => 'passeport',
'fournisseur' => 'utilisateurs',
'hash' => faux,
],
],

Mettre en œuvre le contrôleur pour l'enregistrement et l'authentification :

Vous devez créer un contrôleur pour mettre en œuvre le système d'authentification à l'aide du package passeport. Exécutez la commande suivante à partir du dossier racine du projet pour créer Contrôleur API.

$ php artisan make:controller ApiController

Dans la partie suivante de ce didacticiel, trois méthodes sont ajoutées à l'intérieur du Contrôleur API pour créer un nouvel utilisateur, authentifier un utilisateur et obtenir les informations détaillées d'un utilisateur authentifié.

UNE. S'inscrire

Un nouvel utilisateur peut être créé dans le utilisateurs table en mettant en place un S'inscrire() méthode. Ajoutez le code suivant à l'intérieur du Contrôleur API pour implémenter l'API de registre. Les valeurs de champ nécessaires à la création d'un nouvel utilisateur sont récupérées par l'argument, $demande de la méthode S'inscrire(). Validateur la classe est utilisée pour vérifier que les valeurs des champs sont valides ou non basées sur les règles de validation définies. Si la échoue() la méthode renvoie true puis elle renverra un message d'erreur au format JSON. Si la échoue() la méthode renvoie false, puis un mot de passe de hachage sera généré et de nouvelles informations sur l'utilisateur seront insérées dans la table des utilisateurs. Un jeton sera généré après la création du nouvel utilisateur et un message de réussite avec la valeur du jeton sera renvoyé.

registre de fonction publique (Requête $requête)

/**Valider les données à l'aide de règles de validation
*/
$validator = Validator::make($request->all(), [
'nom' => 'obligatoire',
'email' => 'requis|email',
'password' => 'obligatoire',
]);
/**Vérifier que la validation échoue ou non
*/
if ($validator->fails())
/**Renvoyer un message d'erreur
*/
return response()->json([ 'error'=> $validator->errors() ]);

/**Stocker toutes les valeurs des champs
*/
$newuser = $request->all();
/**Créer un mot de passe crypté en utilisant le hachage
*/
$newuser['password'] = Hash::make($newuser['password']);
/**Insérer un nouvel utilisateur dans le tableau
*/
$user = User::create($newuser);
/**Créer un jeton d'accès pour l'utilisateur
*/
$success['token'] = $user->createToken('AppName')->accessToken;
/**Renvoyer le message de réussite avec la valeur du jeton
*/
return response()->json(['success'=>$success], 200);

B. Connexion:

Tout utilisateur peut être authentifié en implémentant le login() méthode. Ajoutez le code suivant à l'intérieur Contrôleur API pour implémenter une API de connexion. Les champs obligatoires pour authentifier un utilisateur sont extraits du $demande de le login() méthode. tenter() méthode vérifiera les valeurs de e-mail et le mot de passe pour l'authentification. Si les valeurs correspondent aux valeurs du utilisateurs table, 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 à la fonction publique (Requête $requête)

/** Lire les identifiants passés par l'utilisateur
*/
$informations d'identification = [
'email' => $request->email,
'password' => $request->password
] ;
/**Vérifier que les identifiants sont valides ou non
*/
if( auth()->tentative($credentials) )
/**Stocker les informations de l'utilisateur authentifié
*/
$user = Auth::user();
/**Créer un jeton pour l'utilisateur authentifié
*/
$success['token'] = $user->createToken('AppName')->accessToken;
return response()->json(['success' => $success], 200);
autre
/**Renvoyer un message d'erreur
*/
return response()->json(['error'=>'Unauthorised'], 401);

C. Détails de l'utilisateur

Vous pouvez obtenir les informations détaillées de n'importe quel utilisateur après authentification en implémentant l'API utilisateur. Ajoutez le code suivant dans le Contrôleur API pour récupérer les informations détaillées de tout utilisateur authentifié.

fonction publique user_info()

/**Récupérer les informations de l'utilisateur authentifié
*/
$user = Auth::user();
/** Retourner les détails de l'utilisateur
*/
return response()->json(['success' => $user], 200);

Route API pour le contrôleur :

Ouvrez le itinéraires\application.php fichier et modifiez le contenu avec les codes suivants pour définir la route de connexion, la route d'enregistrement et la route des détails pour les services API.

/**Route pour l'API de connexion */
Route::post('login', '[email protected]');
/**Route pour l'API d'enregistrement */
Route::post('register', '[email protected]');
/**Route pour les détails API utilisateur */
Route::middleware('auth:api')->group(function()
Route::post('details', '[email protected]_info');
);

Exécutez la commande suivante pour démarrer le serveur de développement Laravel.

$ php service artisanal

Testez l'authentification de l'API à l'aide de postman :

Postman est un outil très utile pour tester les API RESTful. La requête 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 requêtes. Postman peut gérer diverses requêtes HTTP et utilitaires pour développer des API. Il a des versions payantes et gratuites pour Linux.

Installez l'agent Postman :

Exécutez la commande suivante depuis le terminal pour installer un agent de facteur sur Ubuntu.

$ sudo snap install postman

Ouvrez l'application après l'installation. L'interface suivante apparaîtra après l'ouverture de la nouvelle fenêtre du facteur.

Tester l'API de registre :

Clique sur le créer une demande lien pour ouvrir la fenêtre de demande. Le serveur de développement Laravel fonctionne 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 POST est sélectionnée dans la liste déroulante et l'URL suivante est utilisée pour envoyer une demande d'API pour enregistrer l'API.

http://localhost:8000/api/register

Trois champs sont définis comme champs obligatoires pour le utilisateurs table pour créer un nouvel utilisateur. Ceux-ci sont Nom, e-mail, et le mot de passe. Définissez trois clés et valeurs pour ces champs indiqués ci-dessous et cliquez sur le envoyer bouton. le S'inscrire() méthode de Contrôleur API sera appelé en fonction de la route si la demande est envoyée correctement.

La réponse suivante apparaîtra si le nouvel enregistrement d'utilisateur est inséré avec succès dans le utilisateurs tableau. Le code de réponse, 200 indique que la requête HTTP a réussi et qu'un jeton est généré après l'insertion du nouvel utilisateur affiché dans le corps de la réponse au format JSON.

Tester l'API de connexion :

Sélectionnez le PUBLIER méthode comme la Enregistrer l'API qui est montré avant. Définissez l'URL suivante dans la barre d'adresse pour envoyer une demande d'API pour l'API de connexion.

http://localhost:8000/api/login

Deux champs sont obligatoires pour authentifier tout utilisateur sur la base des enregistrements du utilisateurs tableau. Ceux-ci sont e-mail et le mot de passe. Définissez deux clés et valeurs pour ces champs indiqués ci-dessous et cliquez sur le envoyer bouton. le connexion() méthode de Contrôleur API sera appelé en fonction de la route si la demande est envoyée correctement.

La réponse suivante apparaîtra si l'utilisateur est authentifié avec succès sur la base des enregistrements du utilisateurs tableau. Le code de réponse, 200 indique que la requête HTTP a réussi. La valeur du jeton est générée après l'authentification de l'utilisateur et renvoie le corps de la réponse au format JSON.

Vous obtiendrez le corps de réponse suivant lorsque les informations d'identification incorrectes sont fournies pour authentifier l'utilisateur. 401 un code d'erreur est généré ici pour indiquer un accès non autorisé.

Tester l'API des détails de l'utilisateur :

Certains paramètres d'en-tête doivent être configurés avant d'envoyer la demande d'API Détails. Clique sur le en-têtes onglet de la section demande et ajoutez trois valeurs d'en-tête pour identifier l'utilisateur authentifié. La valeur du jeton est copiée à partir du corps de la réponse et définie pour la valeur d'autorisation.

Accepter : application/json
Type de contenu : application/json
Autorisation:
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxIiwianRpIjoiNDU3OWUwNmEwZ
jE3ZWNmYThhOTkxNDJkMmQwZDQxYzU4MGFiMDM3OTc4NTIwYzA4NTJjZTk2MWU4NGFkYjE3ODU
wMzc3OTIwMzk3OWVmNTkiLCJpYXQiOjE1OTkyNzk3MTYsIm5iZiI6MTU5OTI3OTcxNiwiZXhwI
joxNjMwODE1NzE2LCJzdWIiOiI1Iiwic2NvcGVzIjpbXX0.fJYvzFsiD4WKcklpZ2-
w64UVOOk1DqMo_KbLCI7C00xQKhuQupVkgRULUx3e2mJIoJ8ET0MLngpUIFFS8Aet7W8KoQCcL
SzMKUjot4fhONQ5Dyzmb4csAIXFVoKK8YRm4gPCq-b1OW5e9K5gcrLKmqnt9a6nywoGHkXqq4GE
qHnHFgPnOkMfjbtGuKIj3aMtA2i7qHcbWdIt5O970LdM1ehW-AuMESZflJdjfN6zkHK4Kc93-
vLpZbgEKh1XD0p1fJEWyms590oIPERuWVS1hfCkpsnIFYRoB04TYTYPHdL25qwBW0m0VaTQG9fH
7xgiJFSkyS-FGmmUc7lglM8JUeVYmZfv-o5XVRlQ2EOCjLHSOFvKkuFzw-j3YfKaHBWY3Oo4gRD4
foWV2tGvDnF1zR_b11BDfDgv3rrl8mZNHx9DHjaFqUbWEdsnZbWouOR9wy
Vh0GI1fcIkWoWSM_BoNaTFittr9zqjkIWrQtKS3kVqsnCF8nIKXLp2dGaXdd8mWYWoq34NLYHhp
0u2TRy_BFFe3y_icgQVLBHcmEwdiXJISM8l9ctlodgRqA3wAQP11fV8cJfAIP2mfz3uUVY6nDqAr
kv6zRQ9oE4NCsqVvXeVp7RWOfakpu7EcQnwVDoq4hZ5j9tWx8bZ5eybMgHvRXkQKheie2j6Gzt0-rBUrFM

La section des en-têtes de la partie demande ressemblera à l'image suivante. Vous devez définir la valeur de votre jeton qui est générée dans le corps de la réponse de votre agent de facteur.

Ensuite, cliquez sur le Autorisation onglet de la section demande et sélectionnez Jeton au porteur comme type d'autorisation de la Taper menu déroulant.

Maintenant, sélectionnez le PUBLIER méthode, définissez l'URL suivante dans la barre d'adresse. Il appellera le informations utilisateur() méthode de Contrôleur API qui récupérera les informations détaillées de l'utilisateur authentifié.

http://localhost:8000/api/details

Si la valeur du jeton et les informations d'en-tête sont fournies correctement, les détails de cet utilisateur seront renvoyés en tant que corps de réponse au format JSON comme l'image suivante.

Didacticiel vidéo

Conclusion:

L'authentification par passeport est maintenant utilisée 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 décrites correctement dans ce tutoriel. L'utilisation de l'agent facteur est également montrée ici pour tester l'API. J'espère que le lecteur comprendra les fonctionnalités du paquet passeport après avoir lu ce tutoriel.

Le curseur saute ou se déplace de manière aléatoire lors de la saisie dans Windows 10
Si vous constatez que le curseur de votre souris saute ou se déplace tout seul, automatiquement, au hasard lors de la saisie sur un ordinateur portabl...
Comment inverser le sens de défilement de la souris et des pavés tactiles dans Windows 10
Souris et Pavé tactiles rendent non seulement l'informatique facile, mais plus efficace et moins chronophage. Nous ne pouvons pas imaginer une vie san...
Comment changer la taille, la couleur et le schéma du pointeur et du curseur de la souris sous Windows 10
Le pointeur et le curseur de la souris dans Windows 10 sont des aspects très importants du système d'exploitation. Cela peut également être dit pour d...