Rumah  >  Artikel  >  rangka kerja php  >  Pembangunan Laravel: Bagaimana untuk melaksanakan pengesahan APIOAuth2 menggunakan Pasport Laravel?

Pembangunan Laravel: Bagaimana untuk melaksanakan pengesahan APIOAuth2 menggunakan Pasport Laravel?

WBOY
WBOYasal
2023-06-15 10:28:561241semak imbas

Laravel ialah rangka kerja PHP yang sangat popular yang mudah digunakan, sangat berskala dan mempunyai kebolehbacaan kod yang tinggi. Laravel juga menyediakan banyak pakej tambahan (Pakej) untuk melaksanakan pelbagai fungsi, termasuk Laravel Passport, yang merupakan pakej API untuk melaksanakan pengesahan OAuth2.

OAuth2 ialah rangka kerja kebenaran popular yang memudahkan proses kebenaran dan digunakan secara meluas dalam aplikasi web dan mudah alih. Untuk menggunakan OAuth2, kami perlu melaksanakan pelayan kebenaran untuk menjana token dan membenarkan pelanggan menggunakan API. Pasport Laravel memberi kami cara mudah untuk melaksanakan pengesahan OAuth2.

Artikel ini akan memperkenalkan cara menggunakan Pasport Laravel untuk melaksanakan pengesahan OAuth2. Sebelum memulakan, diandaikan bahawa rangka kerja Laravel telah dipasang.

Pasang Laravel Passport

Anda boleh menggunakan Composer untuk memasang Laravel Passport. Jalankan arahan berikut dalam direktori akar aplikasi Laravel anda:

composer require laravel/passport

Setelah pemasangan selesai, anda perlu menjalankan arahan berikut untuk mencipta jadual yang diperlukan untuk Laravel Passport:

php artisan migrate

Seterusnya jalankan arahan berikut untuk mencipta jadual yang diperlukan untuk Pasport Laravel: Pasport menjana kunci penyulitan:

php artisan passport:install

Kunci yang dijana akan digunakan untuk menyulitkan token yang dijana.

Sediakan Pasport

Selepas melengkapkan pemasangan, anda perlu mengkonfigurasi Pasport Laravel dalam aplikasi anda, berikut adalah langkah yang perlu:

Dayakan Pasport

Untuk mendayakan Pasport Laravel, anda perlu memanggil kaedah Passport::routes() dahulu. Kaedah ini akan mendaftarkan laluan yang diperlukan:

//在bootstrap/app.php文件中加入下面这行代码
LaravelPassportPassport::routes();

Dayakan muat semula token automatik

Secara lalai, token akan tamat tempoh secara automatik selepas tamat tempoh. Jika anda ingin memuat semula token secara automatik selepas ia tamat tempoh, anda boleh menggunakan kaedah Passport::refreshTokensExpireIn() dalam AuthServiceProvider. Kami menambah coretan kod berikut pada AuthServiceProvider:

//在AppProvidersAuthServiceProvider.php文件中加入下面这段代码
use LaravelPassportPassport;

//其他代码...

public function boot()
{
    $this->registerPolicies();

    Passport::routes();

    Passport::tokensExpireIn(Carbon::now()->addDays(15));

    Passport::refreshTokensExpireIn(Carbon::now()->addDays(30));
}

Dalam contoh ini, kaedah tokensExpireIn() menetapkan masa tamat tempoh token kepada 15 hari dan kaedah refreshTokensExpireIn() menyegarkan semula tamat tempoh token secara automatik . Masa ditetapkan kepada 30 hari.

Menggunakan Pasport dalam model Pengguna

Kini anda perlu mendayakan ciri Pasport Laravel dalam model Pengguna. Ini boleh dicapai dengan menggunakan kaedah Passport::use() pada kelas Pengguna:

//在app/User.php文件中加入下面这段代码
use LaravelPassportHasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens, Notifiable;
}

Mencipta klien OAuth2

Apabila menggunakan pengesahan OAuth2 dalam aplikasi, ia perlu dijana melalui token API pelayan kebenaran. Untuk berkomunikasi dengan pelayan kebenaran, pelanggan perlu dibuat. Anda boleh mencipta klien dengan menjalankan perintah passport:client:

php artisan passport:client --password

Selepas menjalankan arahan ini, anda akan digesa untuk memasukkan nama aplikasi Jika anda tidak mahu memasukkan nama, anda boleh memilih untuk menggunakan nilai lalai dan tekan Enter.

Selepas operasi selesai, client_id dan client_secret akan dijana. client_id dan client_secret akan digunakan untuk berkomunikasi dengan pelayan kebenaran.

Buat Laluan API

Selepas mencipta klien OAuth2, anda perlu mencipta laluan API untuk membolehkan pelayan kebenaran mengakses API.

//在routes/api.php文件中加入以下代码
Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});

Dalam contoh ini, pengesahan OAuth2 diperlukan untuk laluan yang ditentukan dengan menggunakan perisian tengah auth:api. Jika token API yang sah tidak diberikan, laluan ini akan mengembalikan respons HTTP Tanpa Kebenaran 401.

Hantar permintaan HTTP untuk mengesahkan

Anda kini bersedia untuk menghantar permintaan kepada API dan mengesahkan menggunakan bukti kelayakan OAuth2.

Anda boleh menggunakan alatan seperti Posmen untuk menguji API Permintaan itu perlu mengandungi token API yang sah. Dalam Posman, adalah mungkin untuk memasukkan pengepala Kebenaran dalam permintaan, contohnya:

Authorization: Bearer [access_token]

access_token mesti digantikan dengan token yang dijana sebelum ini.

Ringkasan

Laravel Passport ialah pelayan OAuth2 yang mudah digunakan yang memudahkan untuk melaksanakan pengesahan API tanpa perlu menulis banyak kod. Dalam artikel ini, kami membincangkan langkah-langkah tentang cara melaksanakan pengesahan OAuth2 menggunakan Pasport Laravel dan menunjukkan cara membuat pelanggan OAuth2 dan laluan API dan mengesahkan melalui permintaan HTTP. Jika aplikasi anda perlu menggunakan pengesahan API, maka Pasport Laravel mungkin merupakan salah satu pilihan yang ideal untuk anda.

Atas ialah kandungan terperinci Pembangunan Laravel: Bagaimana untuk melaksanakan pengesahan APIOAuth2 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