Rumah >rangka kerja php >Laravel >Pengenalan terperinci kepada proses, konfigurasi dan penggunaan Pasport Laravel
Laravel Passport ialah pelaksanaan pelayan OAuth2 yang lengkap di bawah rangka kerja Laravel Ia membolehkan anda mengesahkan dan membenarkan identiti pengguna melalui API, supaya perkhidmatan API boleh diakses tanpa mendedahkan bukti kelayakan pengguna, yang sangat mengurangkan kesukaran pelanggan pembangunan meningkatkan keselamatan aplikasi.
Protokol OAuth2 di sebalik Laravel Passport ialah standard industri, jadi anda boleh menyepadukan pengesahan dan kebenaran OAuth2 dengan mudah dalam bahasa dan rangka kerja lain menggunakan alatan dan proses yang sama. Di bawah, artikel ini akan memperkenalkan proses, konfigurasi dan penggunaan Pasport Laravel secara terperinci.
Pasang Pasport
Sebelum menggunakan Laravel Passport, anda perlu memasangnya. Kita boleh menggunakan arahan composer untuk memasang Passport, arahannya adalah seperti berikut:
composer require laravel/passport
Enable Passport
Selepas Laravel Passport dipasang, anda perlu menambah penyedia perkhidmatannya pada config/ tatasusunan penyedia fail app.php, buka fail, cari tatasusunan penyedia dan tambah penyedia perkhidmatan Pasport Laravel seperti berikut:
'providers' => [ // Other Service Providers... Laravel\Passport\PassportServiceProvider::class, ],
Buat jadual pangkalan data
Sebelum menggunakan Pasport Laravel, juga Untuk mencipta jadual pangkalan data baharu yang diperlukan oleh Pasport, anda boleh menggunakan perintah artisan berikut untuk menjana fail migrasi:
php artisan migrate
Selepas melaksanakan arahan di atas, Laravel Passport akan mencipta beberapa jadual baharu dalam pangkalan data anda untuk disimpan Data OAuth2 seperti pelanggan, Token Akses dan Token Segar Semula.
Terbitkan fail konfigurasi
Laksanakan perintah artisan berikut untuk menerbitkan fail konfigurasi Pasport ke direktori konfigurasi projek Laravel:
php artisan vendor:publish --tag=passport-config
Buat kunci
Pada ketika ini, kami telah melengkapkan prasyarat yang diperlukan untuk menggunakan Pasport Laravel. Seterusnya, kita perlu menggunakan perintah artisan berikut untuk menjana kunci penyulitan:
php artisan passport:keys
Arahan di atas akan menjana kunci penyulitan untuk menandatangani data seperti kuki dan token akses.
Mengkonfigurasi Pasport
Selepas melengkapkan langkah di atas, seterusnya kita perlu mengkonfigurasi Pasport supaya ia boleh dijalankan. Dalam fail konfigurasi config/auth.php, tukar pemacu pemacu api kepada pasport, dan tetapkan pengawal dan pembekal seperti berikut:
'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'passport', 'provider' => 'users', ], ],
Konfigurasikan penyedia dalam fail yang sama seperti berikut :
'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => App\Models\User::class, ], ],
Setelah fail konfigurasi selesai, pengesahan API sudah sedia.
Buat Laluan
Seterusnya, kita perlu mencipta laluan API dalam fail laluan aplikasi/Http seperti berikut:
Route::middleware('auth:api')->get('/user', function (Request $request) { return $request->user(); });
Dalam contoh laluan di atas, tentukan auth:api middleware dipasang untuk mengesahkan sama ada permintaan itu datang daripada pengguna yang disahkan Jika ia bukan pengguna yang disahkan, kod status 401 akan dikembalikan apabila pengesahan gagal.
Buat Pelanggan
Sekarang kami telah melengkapkan konfigurasi aplikasi dan tetapan penghalaan API, kami perlu mencipta klien API. Dalam Pasport Laravel, pasport perintah artisan:klien disediakan untuk membuat pelanggan OAuth2 baharu. Jalankan arahan seperti yang ditunjukkan di bawah:
php artisan passport:client --client
Selepas melaksanakan arahan tersebut, kita perlu memasukkan nama klien dan URI hala keizinan seperti yang ditunjukkan di bawah:
php artisan passport:client --client Which user ID should the client be assigned to? [0]: > 1 What should we name the client? > Test Where should we redirect the request after authorization? > http://example.com/callback
Arahan di atas akan mencipta A pelanggan OAuth2 baharu untuk menghantar permintaan ke API aplikasi ini. Kami akan mendapat ID pelanggan dan rahsia pelanggan untuk digunakan dalam permintaan API berikutnya.
Dapatkan keizinan
Pelanggan telah dibuat dan memperoleh URI ubah hala keizinan Sekarang kita perlu menghantar permintaan kepada URI untuk mendapatkan kebenaran. Selepas itu, Pasport akan menjana token akses untuk pelanggan dan mengembalikannya kepada pelanggan. Gunakan URL yang ditunjukkan di bawah, menggantikan ID Pelanggan dan Ubah Hala URI:
http://your-app.com/oauth/authorize?client_id={client-id}&redirect_uri={redirect-uri} &response_type=code&scope=
Selepas memasukkan URL, skrin kebenaran OAuth2 yang ditunjukkan di bawah akan dipaparkan:
Selepas mengklik butang 'Betulkan', kebenaran akan berlaku dan mengubah hala ke URI ubah hala.
Dapatkan Token Akses
Kini kami telah mendapat kebenaran dan pelanggan telah diberikan akses kepada API. Kita perlu menggunakan kod kebenaran OAuth2 untuk menukar kunci klien untuk token akses Kita boleh menggunakan arahan curl seperti yang ditunjukkan di bawah untuk mendapatkan token akses daripada pelayan kebenaran API:
$ curl -X POST -H "Accept: application/json" -F "client_id={client-id}" -F "client_secret={client-secret}" -F "grant_type=authorization_code" -F "code={code}" -F "redirect_uri={redirect-uri}" http://your-app.com/oauth/token
Selepas melaksanakan. arahan di atas, Anda akan mendapat objek JSON seperti yang ditunjukkan di bawah, yang mengandungi maklumat seperti access_token dan refresh_token:
{ "token_type": "Bearer", "expires_in": 86400, "access_token": "{access-token}", "refresh_token": "{refresh-token}", }
Menggunakan token akses untuk membuat permintaan API
Sekarang kami telah memperoleh token akses, kami Token akses boleh digunakan untuk membuat permintaan dengan API. Kami perlu menambah pengepala Kebenaran pada pengepala permintaan API, menetapkan skema pengesahan Pembawa dan menggunakan token akses sebagai kandungan token, seperti yang ditunjukkan di bawah:
$client = new \GuzzleHttp\Client(); $response = $client->request('GET', 'http://your-app.com/api/user', [ 'headers' => [ 'Authorization' => 'Bearer '.$accessToken, 'Accept' => 'application/json', ], ]);
Dalam kod di atas, kami akan The token akses diserahkan kepada pelayan API dalam format TOKEN Pembawa untuk pengesahan Jika berjaya, keputusan respons API akan diperolehi.
Ringkasan
Dalam artikel ini, kami menerangkan proses, konfigurasi dan penggunaan Pasport Laravel. Menggunakan Pasport Laravel, kami boleh menambah pengesahan dan keizinan selamat dengan cepat pada aplikasi API, sambil menyokong protokol OAuth2 dan saling beroperasi dengan aplikasi yang melaksanakan kebenaran OAuth2 dalam bahasa pengaturcaraan dan rangka kerja lain, membolehkan pembangun membina keselamatan dengan cepat Tinggi, mudah untuk- menggunakan aplikasi API.
Atas ialah kandungan terperinci Pengenalan terperinci kepada proses, konfigurasi dan penggunaan Pasport Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!