Maison >développement back-end >tutoriel php >Intégration de l'authentification JWT dans Lithe

Intégration de l'authentification JWT dans Lithe

Patricia Arquette
Patricia Arquetteoriginal
2024-11-04 21:47:02709parcourir

Integrando Autenticação JWT no Lithe

Dans cet article, nous apprendrons comment intégrer le middleware JWT (JSON Web Tokens) dans Lithe, fournissant une authentification robuste et sécurisée pour votre API. L'utilisation de JWT vous permet d'authentifier les utilisateurs et de sécuriser les itinéraires sensibles de manière simple et efficace.

Qu’est-ce que JWT ?

JSON Web Token (JWT) est un standard ouvert (RFC 7519) qui définit une méthode compacte et autonome pour transmettre des informations entre les parties en tant qu'objet JSON. Ces jetons peuvent être utilisés pour l'authentification, vous permettant de maintenir la session d'un utilisateur sans avoir besoin de stocker des informations sur le serveur. JWT est composé de trois parties : en-tête, charge utile et signature.

Étape 1 : configuration de l'environnement

  1. Installation souple Tout d’abord, installez Lithe si vous ne l’avez pas déjà fait. Exécutez la commande suivante dans le terminal :
composer create-project lithephp/lithephp nome-do-projeto
cd nome-do-projeto

Étape 2 : Installation du middleware JWT

  1. Installation du package JWT Pour utiliser le middleware JWT, vous devez installer le package lithemod/jwt. Courir:
composer require lithemod/jwt
  1. Démarrage de l'application Ouvrez le fichier principal src/App.php et ajoutez le code suivant pour démarrer l'application :
use function Lithe\Orbis\Http\Router\router;

$app = new \Lithe\App;

$app->use('/api', router(__DIR__ . '/routes/api'));

$app->listen();

Étape 3 : Sécuriser les itinéraires avec JWT

  1. Créer un itinéraire protégé Dans votre projet Lithe, vous pouvez créer un itinéraire qui nécessite une authentification. Par exemple, créez un fichier appelé src/routes/api.php et ajoutez :
use Lithe\Http\{Request, Response};
use function Lithe\Orbis\Http\Router\{get};

$auth = new \Lithe\Auth\JWT();

get('/protected', $auth, function(Request $req, Response $res) {
    return $res->json(['message' => 'Este é um conteúdo protegido!']);
});

Étape 4 : Générer des jetons JWT

  1. Créer une route de connexion Créez une route d'authentification où les utilisateurs peuvent obtenir un jeton JWT. Ajoutez ce qui suit dans le même fichier src/routes/api.php :
use Lithe\Http\{Request, Response};
use function Lithe\Orbis\Http\Router\{post};

post('/login', function(Request $req, Response $res) {
     $body = $req->body(); // Supondo que o corpo da requisição contenha 'username' e 'password'

    // Aqui você deve validar as credenciais do usuário (exemplo simplificado)
    if ($body->username === 'admin' && $body->password === 'senha') {
        $user = ['id' => 1]; // Exemplo de usuário
        $token = (new \Lithe\Auth\JWT())->generateToken($user);
        return $res->send(['token' => $token]);
    }

    return $res->status(401)->json(['message' => 'Credenciais inválidas']);
});

Bien sûr ! Voici la section mise à jour avec des informations sur la définition d'une clé sécurisée et secrète lors de l'utilisation de JWT :


Considérations finales

Grâce à cela, vous avez intégré avec succès le middleware JWT à Lithe, permettant une authentification sécurisée et une protection des routes sensibles. Il est important de rappeler que lors de l'utilisation de JWT, vous devez définir une clé sécurisée et secrète lors de l'instanciation de l'objet JWT, en la passant comme premier paramètre : new JWT('your_secret_key'). Cette clé doit être complexe et gardée secrète pour éviter les fraudes.

Vous pouvez désormais étendre votre application selon vos besoins et implémenter des fonctionnalités supplémentaires telles que la révocation des jetons et la gestion des sessions.

Pour en savoir plus sur JWT, vous pouvez consulter la documentation officielle ici.

N'hésitez pas à partager vos expériences et questions dans les commentaires !

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:
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