Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Melaksanakan pengesahan keselamatan PHP menggunakan Pasport Laravel

Melaksanakan pengesahan keselamatan PHP menggunakan Pasport Laravel

王林
王林asal
2023-07-25 21:33:241483semak imbas

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:

  1. 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
  2. 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 文件中添加 PassportHasApiTokens trait:

    use LaravelPassportHasApiTokens;

    并在类的 trait 数组中引入:

    use HasApiTokens;

    现在,我们已经成功配置了 Laravel Passport。

  3. 创建用户认证接口
    首先,我们需要创建一个控制器来处理用户认证请求。可以执行以下命令来生成一个新的控制器:

    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);
     }
    }
  4. 创建路由
    打开 routes/api.php 文件,并添加以下路由:

    Route::post('register', 'AuthController@register');
    Route::post('login', 'AuthController@login')->middleware('client');
  5. 使用 Passport 守卫
    打开 config/auth.php 文件,并将 api 守卫的驱动更改为 passport

    'guards' => [
     'api' => [
         'driver' => 'passport',
         'provider' => 'users',
     ],
    ],
  6. 使用认证用户
    现在,我们可以使用 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/profilerrreee

    Kemudian, dalam app/Http/Kernel. php Dalam tatasusunan $routeMiddleware dalam fail>, tambahkan middleware berikut:
  7. rrreee
Akhir sekali, tambahkan Pasportdalam app/User. php file >'s HasApiTokens trait:

rrreee
dan diperkenalkan dalam tatasusunan trait kelas:

rrreee🎜Kini, kami telah berjaya mengkonfigurasi Laravel Passport. 🎜🎜🎜🎜Buat antara muka pengesahan pengguna🎜Pertama, kita perlu mencipta pengawal untuk mengendalikan permintaan pengesahan pengguna. Anda boleh melaksanakan arahan berikut untuk menjana pengawal baharu: 🎜rrreee🎜 Kemudian, tambah kaedah berikut dalam AuthController untuk mengendalikan permintaan pendaftaran dan log masuk: 🎜rrreee🎜🎜🎜Buat laluan 🎜Buka laluan /api.php fail dan tambahkan laluan berikut: 🎜rrreee🎜🎜🎜Guna Passport guard 🎜Buka fail 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn