Table des matières
1. Installez et configurez Laravel Sanctum
2. Ajoutez le trait sanctuaire à votre modèle d'utilisateur
3. Configurer les routes d'authentification
4. Protégez vos itinéraires API
5. Envoyer des demandes avec le jeton de support
Facultatif: Personnaliser l'expiration des jetons (Sanctum)
Quand utiliser plutôt un passeport?
Maison cadre php Laravel Comment authentifier une API à Laravel

Comment authentifier une API à Laravel

Sep 18, 2025 am 12:26 AM

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.

Comment authentifier une API à Laravel

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.

Comment authentifier une API à Laravel

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:

Comment authentifier une API à Laravel
 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 :

Comment authentifier une API à Laravel
 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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Stock Market GPT

Stock Market GPT

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

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment enregistrer les messages dans un fichier dans Laravel? Comment enregistrer les messages dans un fichier dans Laravel? Sep 21, 2025 am 06:04 AM

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

Comment authentifier une API à Laravel Comment authentifier une API à Laravel Sep 18, 2025 am 12:26 AM

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

Comment rédiger un test de fonctionnalité dans Laravel avec Pest? Comment rédiger un test de fonctionnalité dans Laravel avec Pest? Sep 16, 2025 am 06:12 AM

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

Comment utiliser la relation HasManythrough à Laravel? Comment utiliser la relation HasManythrough à Laravel? Sep 17, 2025 am 06:38 AM

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

Comment créer une recherche en texte intégral dans Laravel? Comment créer une recherche en texte intégral dans Laravel? Sep 16, 2025 am 03:42 AM

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

Comment implémenter l'authentification de l'API avec Laravel Sanctum? Comment implémenter l'authentification de l'API avec Laravel Sanctum? Sep 19, 2025 am 04:08 AM

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

Comment utiliser les contrôleurs de ressources d'itinéraire à Laravel? Comment utiliser les contrôleurs de ressources d'itinéraire à Laravel? Sep 24, 2025 am 05:05 AM

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.

Comment rediriger un utilisateur dans un contrôleur Laravel? Comment rediriger un utilisateur dans un contrôleur Laravel? Sep 21, 2025 am 05:26 AM

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é.

See all articles