Maison >développement back-end >tutoriel php >Implémentation de la vérification de sécurité PHP à l'aide de Laravel Passport
Utilisez Laravel Passport pour implémenter la vérification de sécurité PHP
Introduction :
Dans le développement Web moderne, l'authentification et l'autorisation des utilisateurs sont des fonctions de sécurité très importantes. Laravel Passport est un outil d'authentification basé sur OAuth2 qui peut nous aider à implémenter facilement des fonctions d'authentification et d'autorisation des utilisateurs. Cet article explique comment implémenter une authentification sécurisée en PHP à l'aide de Laravel Passport.
Étapes :
Installer Laravel Passport
Tout d'abord, assurez-vous que le framework Laravel est installé. Ensuite, entrez le répertoire du projet dans le terminal et exécutez la commande suivante pour installer le package Laravel Passport :
composer require laravel/passport
Après une installation réussie, exécutez la commande suivante pour publier les fichiers et les migrations de bases de données requis pour le package :
php artisan passport:install
Configurer Passport
Ouvrez le fichier config/app.php
et ajoutez les fournisseurs de services suivants dans le tableau providers
: config/app.php
文件,在 providers
数组中添加以下服务提供者:
LaravelPassportPassportServiceProvider::class,
然后,在 app/Http/Kernel.php
文件中的 $routeMiddleware
数组中,添加以下中间件:
'client' => LaravelPassportHttpMiddlewareCheckClientCredentials::class,
最后,在 app/User.php
文件中添加 Passport
的 HasApiTokens
trait:
use LaravelPassportHasApiTokens;
并在类的 trait
数组中引入:
use HasApiTokens;
现在,我们已经成功配置了 Laravel Passport。
创建用户认证接口
首先,我们需要创建一个控制器来处理用户认证请求。可以执行以下命令来生成一个新的控制器:
php artisan make:controller AuthController
然后,在 AuthController
中添加以下方法来处理注册和登录请求:
use IlluminateHttpRequest; use IlluminateSupportFacadesAuth; class AuthController extends Controller { public function register(Request $request) { // 验证请求数据 $request->validate([ 'name' => 'required|unique:users', 'email' => 'required|email|unique:users', 'password' => 'required|min:6' ]); // 创建用户 $user = User::create([ 'name' => request('name'), 'email' => request('email'), 'password' => bcrypt(request('password')), ]); // 生成访问令牌 $token = $user->createToken('accessToken')->accessToken; // 返回响应 return response()->json(['token' => $token], 200); } public function login(Request $request) { // 验证请求数据 $credentials = request(['email', 'password']); // 检查用户凭据 if (!Auth::attempt($credentials)) { return response()->json(['message' => 'Unauthorized'], 401); } // 获取当前用户 $user = $request->user(); // 生成访问令牌 $token = $user->createToken('accessToken')->accessToken; // 返回响应 return response()->json(['user' => $user, 'token' => $token], 200); } }
创建路由
打开 routes/api.php
文件,并添加以下路由:
Route::post('register', 'AuthController@register'); Route::post('login', 'AuthController@login')->middleware('client');
使用 Passport 守卫
打开 config/auth.php
文件,并将 api
守卫的驱动更改为 passport
:
'guards' => [ 'api' => [ 'driver' => 'passport', 'provider' => 'users', ], ],
使用认证用户
现在,我们可以使用 auth:api
中间件来验证用户身份并保护相关的 API 路由。例如,在 AuthController
中,可以添加以下路由:
public function profile() { $user = Auth::user(); return response()->json(['user' => $user], 200); }
然后,在 routes/api.php
中,添加以下路由:
Route::get('profile', 'AuthController@profile')->middleware('auth:api');
这样,在访问 /api/profile
rrreee
app/Http/Kernel. php
Dans le tableau $routeMiddleware
du fichier code>, ajoutez le middleware suivant : Passport
dans le app/User. Le trait <code>HasApiTokens
du fichier php : rrreee
et introduit dans le tableau trait
de la classe :
AuthController
pour gérer les demandes d'enregistrement et de connexion : 🎜rrreee🎜🎜🎜Créer des routes 🎜Ouvrir routes /api.php
et ajoutez les routes suivantes : 🎜rrreee🎜🎜🎜Utilisez Passport guard 🎜Ouvrez le fichier config/auth.php
et ajoutez le api
guard Le pilote est remplacé par passport
: 🎜rrreee🎜🎜🎜Utiliser des utilisateurs authentifiés🎜Maintenant, nous pouvons utiliser le middleware auth:api
pour authentifier les utilisateurs et protéger les routes API associées. Par exemple, dans AuthController
, vous pouvez ajouter la route suivante : 🎜rrreee🎜 Ensuite, dans routes/api.php
, ajoutez la route suivante : 🎜rrreee🎜De cette façon , lors de l'accès à /api/profile, il sera demandé à l'utilisateur de fournir d'abord un jeton d'authentification valide. 🎜🎜🎜🎜Résumé : 🎜Cet article explique comment utiliser Laravel Passport pour implémenter la vérification de sécurité PHP. En installant et en configurant Laravel Passport, nous pouvons rapidement mettre en œuvre des fonctions d'authentification et d'autorisation des utilisateurs et protéger nos routes API. Espérons que cet article sera utile aux développeurs utilisant Laravel Passport pour l'authentification. 🎜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!