Maison  >  Article  >  développement back-end  >  Vérification de la sécurité PHP avec Laravel Sanctum

Vérification de la sécurité PHP avec Laravel Sanctum

王林
王林original
2023-07-26 17:58:57934parcourir

Vérification de sécurité PHP avec Laravel Sanctum

Présentation :
Dans le développement Web moderne, la vérification de sécurité est un aspect crucial. Laravel Sanctum est un garde d'authentification simple et flexible fourni par Laravel, qui peut être utilisé pour les applications de séparation front-end et back-end. Cet article expliquera comment utiliser Laravel Sanctum pour implémenter la vérification de sécurité PHP et fournira des exemples de code pertinents.

Étape 1 : Installez Laravel Sanctum

Tout d'abord, installez le package d'extension Sanctum dans le projet Laravel. Vous pouvez utiliser Composer pour installer et exécuter la commande suivante :

composer require laravel/sanctum

Étape 2 : Configurer Sanctum

Une fois l'installation terminée, Sanctum doit être configuré. Ouvrez le fichier config/app.php dans le répertoire racine du projet, recherchez le tableau providers et ajoutez le code suivant : config/app.php 文件,找到 providers 数组,并添加以下代码:

'providers' => [

    // ...

    LaravelSanctumSanctumServiceProvider::class,

],

然后,运行以下命令来发布 Sanctum 的配置文件和数据库迁移文件:

php artisan vendor:publish --provider="LaravelSanctumSanctumServiceProvider"

接着,运行以下命令来执行数据库迁移:

php artisan migrate

步骤三:配置身份验证驱动程序

在设置过程中,需要选择使用 Sanctum 作为默认的身份验证驱动程序。打开 config/auth.php 文件,找到 guards 数组,并将默认的 guard 设置为 sanctum

'defaults' => [
    'guard' => 'sanctum',
    // ...
],

步骤四:启用 Sanctum 中间件

Sanctum 需要使用自己的中间件来处理身份验证。为了启用 Sanctum,需要将 Authenticate 中间件替换为 Sanctum 提供的中间件。打开 app/Http/Kernel.php 文件,将以下代码添加到 $routeMiddleware 数组中:

protected $routeMiddleware = [
    // ...
    'auth' => LaravelSanctumHttpMiddlewareEnsureFrontendRequestsAreStateful::class,
];

步骤五:生成 Sanctum API Token

Sanctum 提供了 API Token 来进行身份验证。API Token 可以通过以下代码来生成:

use LaravelSanctumHasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens;
}

该代码在 User Model 中使用了 HasApiTokens

Route::middleware('auth:sanctum')->group(function () {
    // 这里是需要保护的路由
});

Ensuite, exécutez la commande suivante pour publier le fichier de configuration de Sanctum et le fichier de migration de la base de données :

use IlluminateHttpRequest;

Route::post('/login', function (Request $request) {
    $credentials = $request->only('email', 'password');
    
    if (Auth::attempt($credentials)) {
        $user = Auth::user();
        $token = $user->createToken('api')->plainTextToken;

        return response()->json([
            'user' => $user,
            'token' => $token,
        ]);
    } else {
        return response()->json(['error' => 'Unauthorized'], 401);
    }
});

Ensuite, exécutez la commande suivante pour effectuer la migration de la base de données :

rrreee

Étape 3 : Configurez le pilote d'authentification

Pendant le processus d'installation, vous devez choisir d'utiliser Sanctum comme le pilote d'authentification par défaut. Ouvrez le fichier config/auth.php, recherchez le tableau guards et définissez la garde par défaut sur sanctum :

rrreee

Étape 4 : Activer Sanctum Middleware

Sanctum doit utiliser son propre middleware pour gérer l'authentification. Afin d'activer Sanctum, le middleware Authenticate doit être remplacé par le middleware fourni par Sanctum. Ouvrez le fichier app/Http/Kernel.php et ajoutez le code suivant au tableau $routeMiddleware :

rrreee

Étape 5 : Générer le jeton API Sanctum


Sanctum fournit l'API Jeton d'authentification. Le jeton API peut être généré par le code suivant :

rrreee

Ce code utilise le trait HasApiTokens dans le modèle Utilisateur pour générer un jeton API pour l'utilisateur.

    Étape 6 : Protéger les routes
  • Après avoir utilisé Sanctum pour la vérification de sécurité, vous pouvez utiliser le code suivant pour protéger les routes qui nécessitent une authentification :
rrreee🎜Le code ci-dessus appliquera le middleware Sanctum pour vérifier le jeton API de l'utilisateur. 🎜🎜Étape 7 : Authentification🎜🎜Lorsque l'utilisateur soumet une demande via l'application frontale, le code suivant peut être utilisé pour s'authentifier : 🎜rrreee🎜Le code ci-dessus s'authentifiera via l'e-mail et le mot de passe fournis par l'utilisateur, et reviendra une réponse JSON avec des informations utilisateur et un jeton API. 🎜🎜Résumé : 🎜Avec Laravel Sanctum, nous pouvons facilement implémenter la vérification de sécurité des applications PHP. Cet article explique comment installer et configurer Laravel Sanctum et fournit des exemples de code associés. J'espère que cet article pourra être utile aux débutants et inciter davantage de personnes à apprendre et à utiliser Laravel Sanctum. 🎜🎜Lien de référence : 🎜🎜🎜[Documentation officielle de Laravel Sanctum GitHub](https://github.com/laravel/sanctum)🎜🎜

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