Comment authentifier une API à Laravel
Installez Laravel Sanctum via Composer et publiez ses fichiers, puis exécutez des migrations. 2. Ajoutez le trait Hasapitokens au modèle utilisateur. 3. Définissez les routes de connexion, de déconnexion et d'utilisateurs dans API.php, à l'aide de Sanctum's Auth: Sanctum Middleware. 4. Protégez les routes API en appliquant l'authentification: Sanctum Middleware. 5. Incluez le jeton de support dans l'en-tête d'autorisation lors des demandes. Laravel Sanctum est recommandé pour une authentification API basée sur des jetons simples dans les spas ou les applications mobiles, fournissant une solution sécurisée légère avec une configuration minimale, et elle suffit pour la plupart des applications internes; Utilisez plutôt Laravel Passport lorsque le support OAuth2 complet est requis pour un accès tiers.
L'authentification d'une API à Laravel implique généralement d'utiliser Laravel Sanctum ou Laravel Passport. Pour la plupart des cas d'utilisation modernes, en particulier pour les spas, les applications mobiles ou l'authentification simple basée sur des jetons - le sanctuaire de Laravel est le choix recommandé et plus simple. Voici comment configurer l'authentification de l'API à l'aide de Laravel Sanctum.

1. Installez et configurez Laravel Sanctum
Tout d'abord, installez Sanctum via Composer:
Le compositeur a besoin de Laravel / Sanctum
Publiez ensuite les fichiers de configuration et de migration Sanctum:

PHP Artisan Vendor: Publish --provider = "Laravel \ Sanctum \ SanctumServiceProvider"
Exécutez les migrations pour créer la table des jetons d'accès personnels:
PHP Artisan Migrate
2. Ajoutez le trait sanctuaire à votre modèle d'utilisateur
Assurez-vous que votre modèle User
utilise le trait HasApiTokens
:

Utilisez Laravel \ Sanctum \ Hasapitokens; L'utilisateur de classe s'étend authentitable { utiliser des Hasapitokens; // ... }
3. Configurer les routes d'authentification
Dans routes/api.php
, définissez la connexion, la déconnexion et les points de terminaison utilisateur:
Utiliser illuminate \ http \ request; Utiliser illuminate \ support \ FACADES \ Auth; Route :: Post ('/ Login', fonction (demande $ demande) { $ indentings = $ request-> uniquement ('e-mail', 'mot de passe'); if (auth :: tentating ($ indentings)) { $ user = auth :: user (); $ token = $ user-> createToken ('api-token') -> plaintextToken; retour réponse () -> JSON (['token' => $ token]); } return réponse () -> json (['error' => 'non autorisé'], 401); }); Route :: Middleware ('Auth: Sanctum') -> Groupe (fonction () { Route :: get ('/ user', fonction (demande $ request) { return $ request-> user (); }); Route :: Post ('/ déconnexion', fonction (demande $ request) { $ request-> user () -> currentAccessToken () -> Delete (); return réponse () -> JSON (['message' => 'Logged Out']); }); });
4. Protégez vos itinéraires API
Utilisez le middleware auth:sanctum
pour protéger les itinéraires qui nécessitent une authentification:
Route :: middleware ('auth: sanctum') -> get ('/ protected-data', fonction (request $ request) { return réponse () -> JSON (['data' => 'Ceci est protégé!']); });
5. Envoyer des demandes avec le jeton de support
Lorsque vous faites des demandes de votre frontend ou client, incluez le jeton dans l'en-tête Authorization
:
Get / API / User Autorisation: porteur 1 | Votre long-api-token-here Accepter: Application / JSON
Vous pouvez stocker ce jeton en toute sécurité dans votre frontend (par exemple, localstorage ou cookies sécurisés HTTP uniquement en fonction de votre configuration).
Facultatif: Personnaliser l'expiration des jetons (Sanctum)
Par défaut, les jetons de sanctum n'expirent pas. Si vous souhaitez ajouter l'expiration, vous devrez personnaliser la création de jetons. Une façon consiste à définir manuellement un champ d'expiration dans la base de données et à le vérifier pendant les demandes.
Quand utiliser plutôt un passeport?
Utilisez le passeport Laravel si:
- Vous avez besoin d'un support complet OAuth2 (par exemple, des clients tiers, des codes d'autorisation, des jetons de rafraîchissement).
- Vous construisez une API publique pour les développeurs tiers.
Le passeport est plus lourd et plus complexe. Pour les API internes ou les token simples, le sanctuaire est suffisant et plus facile.
Fondamentalement, Sanctum vous donne un moyen léger et sécurisé d'authentifier les demandes d'API dans Laravel avec une configuration minimale. Il suffit de l'installer, d'ajouter le trait, de créer des jetons sur la connexion et de protéger les itinéraires avec du middleware.
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

Undress AI Tool
Images de déshabillage gratuites

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.

Stock Market GPT
Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

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)

LaravelsesMonologTologMessagesViathelogFacade, avec DefaultLogsStoredInstorage / Logs / Laravel.log.ConfigureChannelsInConfig / Logging.PhptoControloutput

InstallerLaravelsanctumviacomposerAndPublishitsFiles, theNrunmigrations.2.AddthehasapitokenstraitTotheUserModel.3.Definelogin, Logout, andUserRoutesInapi.php, usingsanctum’sauth: SancTumdleware...protectapiroutesby

InstallerPestViacomposerAndInitializeiTinLaravelToSetuptTesting.2.CreAveAvereTUreSTESTSTESTS / FeaturetovateDidingUser Faced Interactions comme HttprequestsSandDatabaseChangeSusingPest's 简洁 Syntax.

AcountrycanaccessalPostStwroughusersusinghasManythrough.forexample, withcountries, utilisateurs, andpostStableSinkedByforeignkeys, theCountryModeldefinesahasManythroughrelationTopostViauser, permettant de permettre de permettre à la netteté de manière

ToImplementfull-textSearchInLaravel, FirstAddafull-TextIndexinthemigration Using $ Table-> fullText (['Title', 'Content']); puis utilisez Where

TOIMPlementAPIAuthentification avec un authentification basée sur les jeunes, l'authentification basée sur la base de YouneedToSetToken sur les aallowsspas, les mobileapps et le premier-partisservicestoseCurelyAccessyourapi.Sanctumprovidealight ApproachbyissUingApitokenShatCan

Laravel Resource Controller traite rapidement les opérations CRUD via Resful Routing, utilise la commande Artisan pour générer des contrôleurs et enregistrer des itinéraires de ressources, et peut créer tous les itinéraires standard dans une seule ligne de code, qui prend en charge la restriction des actions, l'ajout de middleware et le nom de la structure du code.

Utilisez la fonction d'assistance Redirect () pour réaliser la redirection dans le contrôleur Laravel, tel que redirect () -> Route ('Home') pour passer à l'itinéraire nommé, Redirection ('/ Dashboard') vers l'URL spécifiée, Redirect () -> Back () revient à la page précédente, et utilisez Interput () pour conserver les données de la forme et avec () pour passer les messages de session. Il est recommandé d'utiliser des itinéraires nommés pour améliorer la maintenabilité.
