Dengan populariti aplikasi web, OAuth2 telah menjadi salah satu protokol pengesahan yang paling popular. OAuth2 menyediakan pengguna dengan akses yang selamat dan pantas melalui token kebenaran untuk mengakses sumber yang dilindungi.
Laravel ialah rangka kerja aplikasi web PHP yang popular yang telah menjadi pilihan pertama untuk pembangun web. Ia mempunyai ciri berkuasa dan sintaks mudah untuk membantu pembangun web membina aplikasi web berkualiti tinggi dengan cepat. Pasport Laravel ialah pelaksanaan OAuth2 yang sangat berkuasa dalam Laravel, yang boleh membantu pembangun memudahkan pengesahan OAuth2. Dalam artikel ini, kami akan meneroka cara melaksanakan pengesahan OAuth2 menggunakan Pasport Laravel.
Pengenalan kepada Laravel Passport
Laravel Passport ialah pelaksanaan pelayan OAuth2 dalam Laravel Ia boleh membantu pembangun membina pelayan OAuth2 dengan cepat dan memudahkan proses pengesahan OAuth2. Ia bukan sahaja menyediakan pelaksanaan standard asli OAuth2, tetapi juga menyediakan perkhidmatan seperti kunci API, bukti kelayakan pelanggan dan token akses. Pasport Laravel juga menyediakan satu siri API untuk mengurus pelanggan, kunci dan token, serta boleh disepadukan dengan sempurna dengan sistem pengesahan pengguna Laravel.
Menggunakan Laravel Passport
Pemasangan Laravel Passport adalah sangat mudah dan boleh dicapai menggunakan Composer. Pergi ke direktori aplikasi Laravel anda di terminal dan masukkan arahan berikut:
composer require laravel/passport
Seterusnya, kita perlu menjalankan arahan pemasangan Laravel Passport. Kita boleh memasangnya menggunakan arahan Artisan passport:install
. Perintah ini akan menjana migrasi pangkalan data yang diperlukan, beberapa kunci penyulitan dan token akses aplikasi. Kami boleh terus menjalankan arahan berikut:
php artisan passport:install
Selepas menjalankan arahan ini, anda akan melihat output yang serupa dengan yang berikut:
Encryption keys generated successfully. Client ID: 1 Client secret: 9CrrluKEDJ3xvTLyHoSz3g3b5W3H4EBvLIS1G3V5
ID Pelanggan dan Rahsia Pelanggan dalam output di atas adalah Maklumat anda diperlukan untuk mendaftarkan pelanggan OAuth2 dengan aplikasi anda. Bukti kelayakan pelanggan membolehkan pelanggan mendapatkan token pengguna dan mengakses pelayan API anda.
Sekarang kita telah memasang Pasport Laravel, mari lihat cara menggunakannya untuk melaksanakan pengesahan OAuth2.
Jana Token API
Laravel Passport menyediakan token API untuk setiap pengguna, yang boleh digunakan untuk mengakses titik akhir API yang dilindungi. Untuk menjana token API, gunakan kod berikut:
$user = AppModelsUser::find(1); $token = $user->createToken('MyApp')->accessToken;
Dalam contoh ini, kami menggunakan kaedah createToken
untuk menjana token API. Kami perlu menyediakan rentetan pengenalpastian supaya token dapat dikenal pasti pada masa hadapan. Kaedah ini akan mengembalikan contoh AccessToken dan kita boleh menggunakan atribut accessToken
untuk mendapatkan rentetan token.
Untuk menggunakan token API untuk mengakses titik akhir API yang dilindungi, kami perlu menambahkan token pada pengepala permintaan HTTP. Gunakan kod berikut:
$request->header('Authorization', 'Bearer '.$accessToken);
Dalam contoh ini, kami menggunakan pengepala permintaan Kebenaran untuk menyediakan token API, di mana rentetan token biasanya bermula dengan awalan "Pembawa".
Selepas menambah token API dalam pengepala permintaan, anda boleh mengakses titik akhir API yang dilindungi dan pelayan akan menggunakan token API untuk mengesahkan.
Kelayakan Pelanggan
Kelayakan klien OAuth2 membenarkan klien mendapatkan token akses daripada pelayan OAuth2 bagi pihak pengguna. Dalam Pasport Laravel, kita boleh menggunakan kod berikut untuk mendaftarkan klien OAuth2:
use LaravelPassportClient; $client = new Client; $client->name = 'MyApp'; $client->redirect = 'http://example.com/callback'; $client->save(); $client->createToken()->accessToken;
Kita boleh menggunakan kaedah di atas untuk mencipta klien OAuth2 dan menggunakan ID pelanggan dan rahsia pelanggan untuk mendapatkan token akses .
Kod Kebenaran OAuth2
Kod Kebenaran OAuth2 ialah proses yang membenarkan pengguna meminta pelayan OAuth2 bagi pihak pengguna melalui klien untuk mendapatkan token akses. Pasport Laravel menyokong proses kod kebenaran OAuth2 dan juga menyediakan API untuk mengurus kod kebenaran. Sebagai contoh, berikut ialah contoh cara membuat kod kebenaran OAuth2:
use LaravelPassportPassport; use IlluminateHttpRequest; Route::get('/redirect', function (Request $request) { $query = http_build_query([ 'client_id' => 'client-id', 'redirect_uri' => 'http://example.com/callback', 'response_type' => 'code', 'scope' => '', ]); return redirect('http://example.com/oauth/authorize?'.$query); }); Route::get('/callback', function (Request $request) { $token = Request::create( 'http://example.com/oauth/token', 'POST', [ 'grant_type' => 'authorization_code', 'client_id' => 'client-id', 'client_secret' => 'client-secret', 'redirect_uri' => 'http://example.com/callback', 'code' => $request->code, ] ); $response = Route::dispatch($token); return json_decode((string) $response->getContent(), true); })->name('callback');
Dalam kod di atas, kami mula-mula menggunakan fungsi http_build_query
untuk menjana rentetan pertanyaan untuk dihantar ke pelayan OAuth2. Kami kemudiannya mengubah hala ke pelayan OAuth2 dan lulus rentetan pertanyaan sebagai parameter. Apabila pengguna memberi kebenaran, pelayan OAuth2 akan mengubah hala semula ke aplikasi kami. Dalam laluan panggil balik kami, kami menjana token akses untuk kegunaan masa hadapan untuk mengakses titik akhir API yang dilindungi.
Kesimpulan
Dalam artikel ini, kami mempelajari cara menggunakan Pasport Laravel untuk memudahkan proses pengesahan OAuth2. Kami mempelajari cara menjana token API, mengkonfigurasi bukti kelayakan pelanggan dan melaksanakan aliran kod kebenaran OAuth2. Pasport Laravel menyediakan API yang mudah difahami yang membolehkan kami melaksanakan pengesahan OAuth2 yang selamat dengan cepat. Jika anda mahukan pengesahan OAuth2 dalam aplikasi Laravel anda, maka Pasport Laravel akan menjadi penyelesaian pilihan anda.
Atas ialah kandungan terperinci Pembangunan Laravel: Bagaimana untuk memudahkan pengesahan OAuth2 dengan Pasport Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!