Rumah >rangka kerja php >Laravel >Pengenalan terperinci kepada proses, konfigurasi dan penggunaan Pasport Laravel

Pengenalan terperinci kepada proses, konfigurasi dan penggunaan Pasport Laravel

PHPz
PHPzasal
2023-04-23 09:17:581462semak imbas

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:

Pengenalan terperinci kepada proses, konfigurasi dan penggunaan Pasport Laravel

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!

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