Un article présentant le mécanisme d'implémentation de Token dans Laravel
Laravel est un framework d'application web développé à l'aide du langage de programmation PHP. Ses excellentes performances sont dues à son intégration interne d'un grand nombre de packages d'extension puissants. Cela inclut l’implémentation sous-jacente de Token. Le jeton est une méthode d'authentification couramment utilisée dans les applications Web et est généralement utilisé pour protéger les API et les services Web contre tout accès illégal. Dans cet article, nous présenterons le mécanisme d'implémentation de Token dans Laravel.
1. Le concept de jeton
Token, comme son nom l'indique, fait référence à un jeton, une marque qui peut représenter une sorte d'informations d'identité ou d'autorisation. Il est généralement généré par le serveur et délivré au client une fois que le client a reçu le jeton, il est stocké localement et ajouté à l'en-tête de la demande ou aux paramètres de la demande dans les demandes ultérieures en tant qu'identification d'authentification ou d'autorisation. Le serveur peut déterminer si la demande contient des informations d'authentification ou d'autorisation en vérifiant si le jeton est valide.
L'utilisation de jetons peut protéger plus efficacement les applications Web contre les accès non autorisés, en particulier dans les API et les services Web, les jetons sont essentiels.
2. Implémentation de Laravel Token
En tant qu'excellent framework d'application Web, Laravel fournit la prise en charge des jetons dans sa fonction d'authentification intégrée. Dans Laravel, Token est implémenté à l'aide du package d'extension Laravel Sanctum.
2.1 Laravel Sanctum
Laravel Sanctum est un package d'authentification léger qui peut fournir une authentification API pour les applications Laravel, basée sur des clés API ou des jetons, permettant aux applications de mieux fonctionner dans un environnement sans état tel que les applications SPA, les applications à page unique et. applications mobiles, etc. Laravel Sanctum fournit les fonctions suivantes :
- Vous pouvez commencer à l'utiliser sans configuration ;
- Prend en charge l'utilisation de plusieurs méthodes d'authentification telles que les clés de session, de jeton et d'API ;
- Multiples implémentations d'authentification intégrées, telles que les cookies, Jeton, authentification, etc. ;
- Fournit une authentification et une génération de jetons pratiques.
- Meilleur processus d'authentification personnalisé.
2.2 Principe de mise en œuvre du jeton
Dans Laravel Sanctum, le principe de mise en œuvre du jeton est similaire au principe de mise en œuvre de la session. Dans la requête, lorsque le client fait une requête au serveur, le jeton est envoyé au serveur en tant que paramètre de requête ou champ d'autorisation dans l'en-tête. Le serveur vérifie si le jeton est valide et, pendant la période de validité, accorde l'autorisation pour l'opération demandée ou renvoie un message d'erreur. Le processus de mise en œuvre du jeton est le suivant :
- Créer un jeton : lorsqu'un utilisateur se connecte, Sanctum génère un jeton aléatoire pour l'utilisateur et enregistre le jeton dans la base de données en arrière-plan.
- Envoyer le jeton : utilise le jeton comme paramètre de requête ; ou En-tête Le champ Autorisation est envoyé au serveur ;
- Vérification du jeton : côté serveur, Sanctum vérifiera si le jeton reçu est valide et décidera de l'autoriser ou du rejeter.
- Gestion des jetons : Sanctum fournit une série d'API pour ; créer, révoquer, rechercher et vérifier un jeton.
3. Utilisation du jeton Laravel
Sanctum fournit une API pratique et facile à utiliser pour utiliser le jeton, y compris la création, la révocation, la recherche et la vérification du jeton, etc. Voici comment Token est utilisé :
3.1 Installer Sanctum
Dans l'application, vous devez d'abord introduire le package de dépendances de Sanctum dans le fichier composer.json de l'application :
composer require laravel/sanctum
Une fois l'installation terminée, vous devez l'ajouter à le fichier config/app.php Ajoutez la configuration suivante :
'providers' => [ // Other service providers... Laravel\Sanctum\SanctumServiceProvider::class, ],
3.2 Publier la configuration
Une fois l'installation terminée, vous devez exécuter la commande suivante pour publier le fichier de configuration de Sanctum :
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
3.3 Configurer le Middleware
Lors de l'utilisation Sanctum, vous devez ajouter le middleware aux éléments de route correspondants. Dans Laravel, un middleware d'authentification API a été intégré et peut être appelé directement.
3.4 Créer un jeton
Après vous être connecté, vous pouvez utiliser le code suivant pour créer un jeton pour l'utilisateur actuel :
use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use Illuminate\Validation\ValidationException; use App\Models\User; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Route; // 创建Token Route::post('/api/token/create', function (Request $request) { $request->validate([ 'email' => 'required|email', 'password' => 'required', ]); $user = User::where('email', $request->email)->first(); if (! $user || ! Hash::check($request->password, $user->password)) { throw ValidationException::withMessages([ 'email' => ['The provided credentials are incorrect.'], ]); } return $user->createToken($request->header('User-Agent'))->plainTextToken; });
Dans le code ci-dessus, vous pouvez voir que le User-Agent de la machine est utilisé comme agent supplémentaire paramètre lors de la création du jeton. Le User-Agent est ici un en-tête HTTP qui enregistre des informations pertinentes sur le navigateur ou l'application. Ces informations seront utilisées dans le cadre du Token, de sorte qu'une fois le Token volé ou utilisé de manière malveillante, il puisse être facilement découvert et révoqué.
3.5 Révoquer le jeton
Une fois le jeton créé volé ou invalide, il peut être révoqué à l'aide du code suivant :
Auth::user()->tokens()->delete();
3.6 Extension de vérification
Sanctum fournit également une bonne extension de vérification, qui peut faciliter le contrôle d'accès. comme suit :
use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use Illuminate\Validation\ValidationException; use App\Models\User; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Route; use Laravel\Sanctum\HasApiTokens; class User extends Authenticatable { use HasApiTokens, Notifiable; }
Après avoir utilisé le code ci-dessus, nous pouvons utiliser l'interface can dans le modèle utilisateur pour le contrôle d'accès. Le code est le suivant :
$request->user()->can('update', $post);
Dans le code ci-dessus, can déterminera si l'utilisateur a accès en fonction de. le rôle, les autorisations et les politiques de l'utilisateur actuel pour effectuer des opérations de mise à jour. Il convient de noter que les utilisateurs doivent implémenter correctement leur propre logique de contrôle d'accès.
4. Résumé
Dans cet article, nous avons présenté le mécanisme d'implémentation sous-jacent de Token dans Laravel, en particulier la manière d'utiliser le package d'extension Sanctum. Sanctum fournit une API pratique et facile à utiliser qui peut être rapidement intégrée aux applications et améliorer la sécurité des applications. L'utilisation, la création, la révocation et la gestion du Token, ainsi que le contrôle d'accès sont tous expliqués en détail.
Dans le monde Internet d'aujourd'hui, avec l'application généralisée des API et des services Web, le jeton, en tant que méthode d'authentification, sera plus largement utilisé dans de nombreuses applications. Le framework Laravel fournit un bon mécanisme de mise en œuvre de jetons qui peut mieux protéger les applications Web contre les accès illégaux.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Cet article guide la construction d'API Robust Laravel Restful. Il couvre la configuration du projet, la gestion des ressources, les interactions de base de données, la sérialisation, l'authentification, l'autorisation, les tests et les meilleures pratiques de sécurité cruciale. Aborder l'évolutivité chall

Cet article détaille la mise en œuvre d'authentification et d'autorisation OAuth 2.0 dans Laravel. Il couvre à l'aide de packages comme les solutions de ligue / oauth2-serveur ou spécifiques au fournisseur, mettant l'accent sur la configuration de la base de données, l'enregistrement du client, la configuration du serveur d'autorisation

L'article discute de la création et de la personnalisation des éléments d'interface utilisateur réutilisables dans Laravel à l'aide de composants, offrant les meilleures pratiques pour l'organisation et suggérant des packages améliorant.

L'article traite des meilleures pratiques pour déployer Laravel dans des environnements natifs du cloud, en se concentrant sur l'évolutivité, la fiabilité et la sécurité. Les problèmes clés incluent la conteneurisation, les microservices, la conception sans état et les stratégies d'optimisation.

L'article discute de la création et de l'utilisation de règles de validation personnalisées dans Laravel, offrant des étapes pour les définir et les mettre en œuvre. Il met en évidence des avantages tels que la réutilisabilité et la spécificité et fournit des méthodes pour étendre le système de validation de Laravel.

L'article discute de la création et de l'utilisation des directives de lame personnalisées à Laravel pour améliorer les modèles. Il couvre la définition des directives, les utilisant dans des modèles et les gérer dans de grands projets, mettant en évidence des avantages tels que l'amélioration de la réutilisabilité du code et R

Lorsqu'il s'agit de choisir un cadre PHP, Laravel et Symfony sont parmi les options les plus populaires et les plus utilisées. Chaque cadre apporte sa propre philosophie, fonctionnalités et forces à la table, ce qui les rend adaptés à différents projets et cas d'utilisation

Cet article explore des stratégies optimales de téléchargement de fichiers et de stockage cloud dans Laravel. Il examine le stockage local vs fournisseurs de cloud (AWS S3, Google Cloud, Azure, DigitalOcean), mettant l'accent sur la sécurité (validation, désinfection, HTTPS) et Performance Opti
