Rumah > Artikel > rangka kerja php > Pengesahan dan Keizinan API dengan Laravel: Melindungi Data dan Operasi Sensitif
Menggunakan Laravel untuk pengesahan dan kebenaran API: melindungi data dan operasi sensitif
Ikhtisar:
API (Antara Muka Pengaturcaraan Aplikasi) ialah bahagian penting dalam pembangunan aplikasi web moden, yang membolehkan interaksi data dan fungsi antara pelbagai panggilan sistem. Dalam aplikasi API, keselamatan data adalah penting. Laravel ialah rangka kerja PHP popular yang menyediakan fungsi pengesahan dan kebenaran API yang berkuasa, yang boleh membantu kami melindungi data dan operasi sensitif serta menghalang akses tanpa kebenaran.
1. Pasang dan konfigurasikan Laravel
Pertama, kita perlu menggunakan komposer untuk memasang Laravel. Jalankan arahan berikut dalam baris arahan:
composer global require laravel/installer
Selepas pemasangan selesai, kita boleh menggunakan arahan berikut untuk mencipta projek Laravel baharu:
laravel new api-auth
Masukkan direktori di mana projek itu terletak:
cd api-auth
Seterusnya, kita perlu untuk menjana kunci untuk menyulitkan data Pengguna kami. Jalankan arahan berikut:
php artisan key:generate
2. Cipta fail berkaitan pengesahan dan kebenaran API
php artisan make:model User -m
Arahan ini akan menjana model Pengguna dan fail pemindahan pangkalan data yang sepadan.
php artisan make:controller AuthController
routes/api.php
dan tentukan laluan yang berkaitan untuk API: routes/api.php
文件,定义API的相关路由:Route::post('login', 'AuthController@login'); Route::post('register', 'AuthController@register'); Route::middleware('auth:api')->group(function () { Route::get('user', 'AuthController@user'); Route::post('logout', 'AuthController@logout'); });
以上路由定义了用户登录、注册、获取用户信息、注销等接口。
app/Http/Controllers/AuthController.php
文件,编写以下代码:namespace AppHttpControllers; use IlluminateHttpRequest; use AppUser; use IlluminateSupportFacadesAuth; class AuthController extends Controller { public function register(Request $request) { $validatedData = $request->validate([ 'name' => 'required|max:55', 'email' => 'email|required|unique:users', 'password' => 'required|confirmed' ]); $validatedData['password'] = bcrypt($request->password); $user = User::create($validatedData); $accessToken = $user->createToken('authToken')->accessToken; return response(['user' => $user, 'access_token' => $accessToken]); } public function login(Request $request) { $loginData = $request->validate([ 'email' => 'email|required', 'password' => 'required' ]); if (!Auth::attempt($loginData)) { return response(['message' => 'Invalid credentials']); } $accessToken = Auth::user()->createToken('authToken')->accessToken; return response(['user' => Auth::user(), 'access_token' => $accessToken]); } public function user() { return response(['user' => Auth::user()]); } public function logout(Request $request) { $request->user()->token()->revoke(); return response(['message' => 'Successfully logged out']); } }
以上代码中,我们定义了用户的注册、登录、获取用户信息和注销操作。
三、配置API认证和授权
config/auth.php
文件,找到guards
和providers
配置项,根据以下示例进行配置:'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users' ], 'api' => [ 'driver' => 'passport', 'provider' => 'users', ] ], 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => AppUser::class ] ],
php artisan migrate
php artisan passport:install
执行完毕后,会生成一对加密的公钥和私钥,用来签发和验证访问令牌。
php artisan passport:client --personal
五、测试API认证和授权
http://localhost:8000/api/register
发送以下数据:{ "name": "John Doe", "email": "johndoe@example.com", "password": "password", "password_confirmation": "password" }
http://localhost:8000/api/login
发送以下数据:{ "email": "johndoe@example.com", "password": "password" }
http://localhost:8000/api/user
发送请求,在Headers中添加Authorization: Bearer {access_token}
,其中{access_token}
是登录时返回的访问令牌。http://localhost:8000/api/logout
发送请求,同样在Headers中添加Authorization: Bearer {access_token}
app/Http/Controllers/AuthController.php
dan tulis kod berikut: 🎜🎜rrreee🎜Dalam kod di atas, kami mentakrifkan pendaftaran Pengguna, log masuk, mendapatkan maklumat pengguna dan operasi log keluar. 🎜🎜3. Konfigurasikan pengesahan dan kebenaran API 🎜🎜🎜Konfigurasi Pengawal dan Pembekal: Buka fail config/auth.php
dan cari guards
dan providers
Item konfigurasi, konfigurasikan mengikut contoh berikut: 🎜🎜rrreee🎜🎜Jalankan pemindahan pangkalan data: Jalankan arahan berikut untuk melaksanakan pemindahan pangkalan data yang dijana: 🎜🎜rrreee🎜🎜Konfigurasi Pasport: Jalankan arahan berikut untuk menerbitkan fail konfigurasi Pasport: 🎜🎜rrreee🎜Laksanakan Selepas selesai, sepasang kunci awam dan peribadi yang disulitkan akan dijana untuk mengeluarkan dan mengesahkan token akses. 🎜http://localhost:8000/api/user
, tambahkan Kebenaran: Pembawa {access_token} dalam Pengepala
, dengan {access_token}
ialah token akses yang dikembalikan semasa log masuk. 🎜🎜Log keluar pengguna: Gunakan permintaan POST untuk menghantar permintaan ke http://localhost:8000/api/logout
dan juga tambahkan Authorization: Bearer {access_token}
dalam Tajuk. 🎜🎜🎜 Di atas, kami telah berjaya melindungi data dan operasi sensitif melalui fungsi pengesahan dan kebenaran API Laravel. Menggunakan model pengguna, pengawal, penghalaan dan fungsi yang disediakan oleh Pasport, kami boleh melaksanakan kawalan pengesahan dan kebenaran API dengan mudah. 🎜Atas ialah kandungan terperinci Pengesahan dan Keizinan API dengan Laravel: Melindungi Data dan Operasi Sensitif. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!