


Comment mettre en ?uvre des gardes et des fournisseurs d'authentification personnalisés?
Jun 19, 2025 am 12:45 AMPour implémenter les gardes et les fournisseurs d'authentification personnalisés dans Laravel, créez d'abord un fournisseur d'utilisateurs personnalisés en implémentant l'interface UserProvider avec des méthodes telles que RetreveById, récupéreByCredentials et validateCredentials, puis l'enregistrez dans un fournisseur de services et configurez-le dans Auth.php; Ensuite, créez un garde personnalisé implémentant l'interface de garde, définissant des méthodes telles que l'utilisateur, vérifiez et validez, enregistrez le gardien dans un fournisseur de services et configurez-le dans auth.php pour utiliser votre fournisseur personnalisé; Assurez-vous que la liaison appropriée des classes, évitez la session accidentelle commence dans les gardes sans état, testez au début des routes middleware ou API, gardez la logique du fournisseur et de la logique de garde et ajustez la logique de validation des informations d'identification si vous n'utilisez pas de mots de passe.
Vous souhaitez implémenter des gardes d'authentification personnalisés et des fournisseurs, car ceux intégrés ne correspondent pas tout à fait aux besoins de votre application - peut-être avez-vous un flux de connexion spécial, utilisez une API externe ou avez besoin de multi-tenues. La bonne nouvelle est que Laravel rend cela assez flexible une fois que vous comprenez comment les gardes et les fournisseurs travaillent ensemble.
Que sont les gardes et les fournisseurs?
Avant de plonger dans le code, clarifions rapidement quelles sont ces deux choses:
- Les gardes définissent comment les utilisateurs sont authentifiés pour chaque demande. Par exemple, Session Guard maintient l'utilisateur connecté à tous les demandes à l'aide de sessions, tandis que Token Guard peut vérifier un jeton API sur chaque demande.
- Les fournisseurs indiquent à Laravel comment récupérer vos utilisateurs de votre source de données (comme une base de données ou un service externe). Ils ne gèrent pas directement la logique d'authentification - ils récupèrent simplement les données de l'utilisateur lorsqu'on leur demande.
Donc, si vous créez quelque chose comme une API avec des jetons JWT ou un système où les utilisateurs se connectent via un service tiers, vous devrez probablement écrire à la fois un garde personnalisé et un fournisseur d'utilisateurs assorti.
étape 1: Créez un fournisseur d'utilisateurs personnalisés
Tout d'abord, construisez le fournisseur. Il doit implémenter Illuminate\Contracts\Auth\UserProvider
.
Disons que vous vous connectez à une API externe au lieu d'une base de données locale. Vous créerez une classe comme ApiUserProvider
:
Extensions de l'espace de noms \ extensions; Utiliser Illuminate \ Contracts \ Auth \ Authenticatable; Utiliser Illuminate \ Contracts \ Auth \ UserProvider; Classe APIIASERPROVIDER IMPLIMENT { Fonction publique RetrieveByid ($ identifiant) { // récupérer l'utilisateur par ID de votre API } Fonction publique RetrieveByToken ($ identifiant, $ Token) { // gérer la logique "souvenir de moi" si nécessaire } Fonction publique UpdateMemberToken (utilisateur $ authentitable, $ Token) { // Enregistrez le nouveau jeton à votre stockage } Fonction publique RetrieveByCredentials (Array $ Contalinals) { // Faites l'appel de l'API pour trouver l'utilisateur en fonction des informations d'identification } Fonction publique validateCredentials (utilisateur Authenticate $, array $ indementiels) { // Vérifiez si le mot de passe correspond - ou sautez si vous utilisez l'authentique à jeton } }
Ensuite, inscrivez-le dans un fournisseur de services:
Auth :: provider ('api', fonction ($ app, array $ config) { Renvoie un nouveau apigerProvider (); });
Et ajoutez-le à votre configuration auth.php
:
'fournisseurs' => [ 'utilisateurs' => [ 'driver' => 'api', ], ],
étape 2: Construisez votre garde personnalisé
Maintenant, créez un garde qui utilise votre fournisseur. Disons que nous construisons un garde API apatrié qui lit un jeton des en-têtes.
Votre garde doit mettre en ?uvre Illuminate\Contracts\Auth\Guard
. Au minimum, vous aurez besoin de méthodes comme user()
, check()
et validate()
.
Voici un aper?u de base:
Extensions de l'espace de noms \ extensions; Utiliser illuminate \ contracts \ auth \ gard; Utiliser illuminate \ http \ request; La classe Tokenguard implémente la garde { demande de $ protégée; fonction publique __construct (demande $ demande) { $ this-> request = $ request; } Fonction publique User () { // Obtenez un jeton de l'en-tête, validez-le, récupérez l'utilisateur via le fournisseur } vérification de la fonction publique () { return! is_null ($ this-> user ()); } Fonction publique Valider (Array $ Contalings = []) { // logique pour valider l'utilisateur sans les enregistrer } // Autres méthodes requises ... }
Enregistrez le gardien dans un fournisseur de services:
Auth :: Extend ('Custom_token', fonction ($ app, $ name, array $ config) { Renvoie un nouveau Tokenguard ($ app ['request']); });
Puis configurez-le dans auth.php
:
'gardes' => [ 'api' => [ 'Driver' => 'Custom_token', 'fournisseur' => 'utilisateurs', ], ],
Choses à surveiller
- ? N'oubliez pas de lier correctement vos classes - sinon Laravel ne saura pas comment les résoudre.
- ? Si vous construisez un garde sans état, assurez-vous de ne pas commencer accidentellement des sessions.
- ? Testez votre garde dans les middleware ou API Routes t?t - il est facile de supposer que cela fonctionne jusqu'à ce que vous essayiez réellement l'authentification.
- ? Gardez votre fournisseur et votre logique de garde découplés - votre fournisseur ne devrait pas se soucier de la fa?on dont le gardien utilise les données.
- ?? Si vous n'utilisez pas de mots de passe (par exemple, les jetons API), assurez-vous que
validateCredentials()
ne vous attend pas à moins que vous n'en avez vraiment besoin.
C'est essentiellement comme ?a. Il faut un peu de passe-partout, mais une fois que votre garde et votre fournisseur sont correctement cablés, Laravel les traitera comme tout conducteur intégré.
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.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

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)

Dans iOS 17, Apple a introduit plusieurs nouvelles fonctionnalités de confidentialité et de sécurité dans son système d'exploitation mobile, dont la possibilité d'exiger une authentification en deux étapes pour les onglets de navigation privée dans Safari. Voici comment cela fonctionne et comment le désactiver. Sur un iPhone ou un iPad exécutant iOS 17 ou iPadOS 17, si un onglet de navigation privée est ouvert dans Safari, puis quittez la session ou l'application, le navigateur d'Apple nécessite désormais une authentification Face ID/TouchID ou un mot de passe pour y accéder à nouveau. En d'autres termes, si quelqu'un met la main sur votre iPhone ou iPad alors qu'il est déverrouillé, il ne pourra toujours pas le voir sans conna?tre votre code d'accès.

L'authentification unique (SSO) est un mécanisme d'authentification qui permet aux utilisateurs de s'authentifier sur plusieurs applications et sites à l'aide d'un seul ensemble d'informations d'identification, comme un nom d'utilisateur et un mot de passe. Ce mécanisme peut améliorer l’expérience utilisateur et l’efficacité tout en renfor?ant la sécurité. En PHP, l'implémentation de l'authentification unique nécessite certaines méthodes spécifiques. Ci-dessous, nous présenterons comment implémenter l'authentification unique en PHP. Nous le diviserons selon les étapes suivantes : Créer un centre d'authentification utilisateur (AuthenticationCenter) à l'aide d'OAuth2

Implémentation de l'authentification des utilisateurs à l'aide d'un middleware dans le framework Slim Avec le développement des applications Web, l'authentification des utilisateurs est devenue une fonctionnalité cruciale. Afin de protéger les informations personnelles et les données sensibles des utilisateurs, nous avons besoin d'une méthode fiable pour vérifier l'identité de l'utilisateur. Dans cet article, nous présenterons comment implémenter l’authentification des utilisateurs à l’aide du middleware du framework Slim. Le framework Slim est un framework PHP léger qui fournit un moyen simple et rapide de créer des applications Web. L'une des fonctionnalités puissantes est le milieu

L'authentification est l'une des parties les plus importantes de toute application Web. Ce didacticiel traite des systèmes d'authentification basés sur des jetons et de leurs différences par rapport aux systèmes de connexion traditionnels. à la fin de ce didacticiel, vous verrez une démo entièrement fonctionnelle écrite en Angular et Node.js. Systèmes d'authentification traditionnels Avant de passer aux systèmes d'authentification basés sur des jetons, examinons les systèmes d'authentification traditionnels. L'utilisateur fournit son nom d'utilisateur et son mot de passe dans le formulaire de connexion et clique sur Connexion. Après avoir effectué la demande, authentifiez l'utilisateur sur le backend en interrogeant la base de données. Si la demande est valide, une session est créée à l'aide des informations utilisateur obtenues à partir de la base de données et les informations de session sont renvoyées dans l'en-tête de réponse afin que l'ID de session soit stocké dans le navigateur. Donne accès aux applications soumises à

Avec le développement rapide d'Internet et de l'Internet mobile, de plus en plus d'applications nécessitent une authentification et un contr?le des autorisations, et JWT (JSON Web Token), en tant que mécanisme léger d'authentification et d'autorisation, est largement utilisé dans les applications WEB. Beego est un framework MVC basé sur le langage Go, qui présente les avantages d'efficacité, de simplicité et d'évolutivité. Cet article explique comment utiliser JWT pour implémenter l'authentification dans Beego. 1. Introduction à JWT JSONWebToken (JWT) est un

Comment utiliser le contr?le des autorisations et l'authentification en C# nécessite des exemples de code spécifiques à l'ère d'Internet d'aujourd'hui, les problèmes de sécurité des informations font l'objet d'une attention croissante. Afin de protéger la sécurité des systèmes et des données, le contr?le des autorisations et l'authentification sont devenus un élément essentiel des développeurs. En tant que langage de programmation couramment utilisé, C# fournit une multitude de fonctions et de bibliothèques de classes pour nous aider à mettre en ?uvre le contr?le des autorisations et l'authentification. Le contr?le des autorisations fait référence à la restriction de l'accès d'un utilisateur à des ressources spécifiques en fonction de son identité, de son r?le, de ses autorisations, etc. Une manière courante d'implémenter le contr?le des autorisations consiste à

Comment les applications Uniapp mettent en ?uvre la reconnaissance faciale et la vérification d'identité Ces dernières années, avec le développement rapide de la technologie de l'intelligence artificielle, la reconnaissance faciale et la vérification d'identité sont devenues des fonctions importantes dans de nombreuses applications. Dans le développement uniapp, nous pouvons utiliser les fonctions cloud et le plug-in uni-app fournis par le développement cloud uniCloud pour implémenter la reconnaissance faciale et la vérification d'identité. 1. Préparatifs pour la mise en ?uvre de la reconnaissance faciale Tout d'abord, nous devons introduire le plug-in uni-app uview-ui et l'ajouter au manifest.jso du projet

Meilleures pratiques d'utilisation d'OAuth2 pour l'authentification dans le langage Go L'utilisation d'OAuth2 pour l'authentification des utilisateurs est très courante dans les applications Web modernes. Il s'agit d'un protocole standard qui facilite l'accès autorisé aux ressources protégées par des applications tierces. Le langage Go dispose de puissantes bibliothèques prenant en charge OAuth2, permettant aux développeurs d'implémenter facilement le processus OAuth2. Cependant, utiliser correctement le protocole OAuth2 n’est pas chose aisée. Cet article vise à fournir des informations sur l'utilisation d'OAuth2 pour l'identité en langage Go.
