Maison >développement back-end >tutoriel php >Vérification de la sécurité PHP avec Laravel Sanctum
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'authentificationPendant le processus d'installation, vous devez choisir d'utiliser Sanctum comme le pilote d'authentification par défaut. Ouvrez le fichierconfig/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 middlewareAuthenticate
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 :
Ce code utilise le trait HasApiTokens
dans le modèle Utilisateur
pour générer un jeton API pour l'utilisateur.
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!