Rumah > Artikel > pembangunan bahagian belakang > Melaksanakan pengesahan keselamatan PHP menggunakan Pasport Laravel
Gunakan Pasport Laravel untuk melaksanakan pengesahan keselamatan PHP
Pengenalan:
Dalam pembangunan web moden, pengesahan dan kebenaran pengguna adalah fungsi keselamatan yang sangat penting. Pasport Laravel ialah alat pengesahan berasaskan OAuth2 yang boleh membantu kami melaksanakan fungsi pengesahan dan kebenaran pengguna dengan mudah. Artikel ini menerangkan cara melaksanakan pengesahan selamat dalam PHP menggunakan Pasport Laravel.
Langkah:
Pasang Pasport Laravel
Pertama, pastikan rangka kerja Laravel dipasang. Seterusnya, masukkan direktori projek dalam terminal dan laksanakan arahan berikut untuk memasang pakej Pasport Laravel:
composer require laravel/passport
Selepas pemasangan berjaya, jalankan arahan berikut untuk menerbitkan fail dan pemindahan pangkalan data yang diperlukan untuk pakej:
php artisan passport:install
Konfigurasikan Pasport
Buka fail config/app.php
dan tambahkan penyedia perkhidmatan berikut dalam tatasusunan pembekal
: 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
Dalam tatasusunan $routeMiddleware
dalam fail>, tambahkan middleware berikut: Pasport
dalam app/User. php
file >'s HasApiTokens
trait: rrreee
dan diperkenalkan dalam tatasusunan trait
kelas:
AuthController
untuk mengendalikan permintaan pendaftaran dan log masuk: 🎜rrreee🎜🎜🎜Buat laluan 🎜Buka config/auth.php
dan tambahkan api
guard Pemandu ditukar kepada pasport
: 🎜rrreee🎜🎜🎜Gunakan pengguna yang disahkan🎜Kini, kami boleh menggunakan perisian tengah auth:api
untuk mengesahkan pengguna dan melindungi laluan API yang berkaitan. Contohnya, dalam AuthController
, anda boleh menambah laluan berikut: 🎜rrreee🎜 Kemudian, dalam routes/api.php
, tambah laluan berikut: 🎜rrreee🎜Dengan cara ini , apabila mengakses /api/profile, pengguna akan diminta untuk memberikan token pengesahan yang sah terlebih dahulu. 🎜🎜🎜🎜Ringkasan: 🎜Artikel ini memperincikan cara menggunakan Pasport Laravel untuk melaksanakan pengesahan keselamatan PHP. Dengan memasang dan mengkonfigurasi Pasport Laravel, kami boleh melaksanakan fungsi pengesahan dan kebenaran pengguna dengan cepat serta melindungi laluan API kami. Semoga artikel ini dapat membantu pembangun yang menggunakan Pasport Laravel untuk pengesahan. 🎜Atas ialah kandungan terperinci Melaksanakan pengesahan keselamatan PHP menggunakan Pasport Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!