Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pembangunan PHP: Melaksanakan pembekal perkhidmatan OAuth2 menggunakan Pasport Laravel

Pembangunan PHP: Melaksanakan pembekal perkhidmatan OAuth2 menggunakan Pasport Laravel

WBOY
WBOYasal
2023-06-15 16:32:011540semak imbas

Dengan populariti Internet mudah alih, semakin banyak aplikasi memerlukan pengguna untuk mengesahkan dan memberi kebenaran. OAuth2 ialah rangka kerja pengesahan dan kebenaran popular yang menyediakan aplikasi dengan mekanisme piawai untuk melaksanakan fungsi ini. Pasport Laravel ialah pelaksanaan pelayan OAuth2 yang mudah digunakan, selamat dan luar biasa yang menyediakan pembangun PHP alat yang berkuasa untuk membina pengesahan dan kebenaran OAuth2. Artikel ini akan memperkenalkan cara menggunakan Pasport Laravel untuk membantu pembangun PHP menguasai pembangunan dan aplikasi OAuth2 dengan lebih baik.

  1. Pengenalan kepada Laravel Passport

Laravel Passport ialah pelaksanaan pelayan OAuth2 lengkap yang menyediakan mekanisme pengesahan dan kebenaran yang mudah dipasang, mudah digunakan, mudah dilanjutkan dan boleh dipercayai. Pasport juga menyokong penandatanganan dan pengesahan token menggunakan JSON Web Token (JWT) dan menyediakan keupayaan pengesahan yang sangat mudah dalam API RESTful. Sudah tentu, untuk menggunakan Pasport Laravel untuk membangunkan penyedia perkhidmatan OAuth2, kita mesti terlebih dahulu menguasai pengetahuan teori dan pengetahuan asas yang berkaitan tentang OAuth2.

  1. Asas OAuth2

OAuth2 ialah rangka kerja kebenaran yang membolehkan aplikasi klien mengakses sumber yang dibenarkan oleh pengguna dengan menggunakan pelayan kebenaran. OAuth2 direka bentuk sebagai protokol berasaskan HTTP yang membolehkan pengguna membenarkan aplikasi klien pihak ketiga kepada pelayan sumber tertentu (seperti pelayan imej atau pelayan fail) untuk mengakses maklumat mereka yang disimpan pada pelayan yang berbeza sama sekali. Konsep teras protokol OAuth2 termasuk:

  • Pelanggan: Aplikasi yang perlu mengakses sumber (seperti fail) pada pelayan sumber.
  • Pemilik Sumber: Pengguna yang boleh memberi kebenaran kepada pelanggan untuk mengakses sumber mereka.
  • Pelayan kebenaran: Pelayan kebenaran mengesahkan klien dan mengeluarkan token akses kepada klien jika pengesahan berjaya.
  • Pelayan Sumber: Pelayan yang menyediakan sumber yang dilindungi kepada pelanggan.

Spesifikasi OAuth2 mentakrifkan beberapa jenis kebenaran untuk pembangun dan jenis kebenaran ini mempunyai senario penggunaan yang berbeza, seperti:

  • Kod kebenaran: jenis kebenaran yang paling biasa digunakan, Menggunakan jenis pemberian kod kebenaran, klien mengubah hala pengguna ke pelayan kebenaran, pelayan kebenaran mengembalikan kod kebenaran dan klien menggunakan kod kebenaran untuk meminta token akses.
  • Keizinan tersirat: digunakan untuk menyediakan token akses kepada klien penyemak imbas tanpa melibatkan sebarang penghantaran kod kebenaran antara pelayan, apabila token diletakkan terus dalam bar alamat klien penyemak imbas .
  • Keizinan pelanggan: digunakan untuk membenarkan klien mengakses pelayan sumber Pada masa ini, pelayan kebenaran tidak memerlukan penyertaan pengguna.
  1. Laravel Passport melaksanakan pembekal perkhidmatan OAuth2

Sekarang kami telah memahami asas-asas OAuth2 dan pengenalan kepada Laravel Passport, kami akan memasuki peringkat praktikal, Mula melaksanakan pembekal perkhidmatan OAuth2 menggunakan Pasport Laravel.

3.1. Pasang Pasport Laravel

Kami boleh menggunakan Komposer untuk memasang Pasport Laravel, membuka terminal atau gesaan baris arahan, dan masukkan arahan berikut:

composer require laravel/passport

Selepas memasang Laravel Pasport kami Anda perlu menjalankan perintah untuk pemindahan pangkalan data:

php artisan migrate

3.2 Konfigurasikan OAuth2

Dalam Pasport Laravel, minta token akses dan dapatkan sumber melalui "klien". Sebelum kita mula, kita perlu mencipta beberapa pelanggan. Kita boleh menggunakan pasport arahan Passport:client untuk mencipta pelanggan:

php artisan passport:client

Arahan ini akan memaparkan ID pelanggan dan kunci rahsia yang dibuat dalam konsol, serta jenis pelanggan (awam atau sulit), pelanggan jenis akhir menentukan cara token akses dijana.

Seterusnya, konfigurasikan pengawal dan penyedia dalam fail config/auth.php, menggunakan pasport sebagai pembekal kebenaran:

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],
    'api' => [
        'driver' => 'passport',
        'provider' => 'users',
    ],
]

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => AppModelsUser::class,
    ],
],

Dalam coretan kod di atas, kami hanya mendayakan yang bernama api " Penjaga pintu", nyatakan ia sebagai penjaga pintu Pasport ('pemandu' => 'pasport').

Selepas konfigurasi selesai, kami perlu menjana semula kunci Pasport dan laksanakan arahan berikut:

php artisan passport:keys

Selepas menjalankan arahan ini, pembekal perkhidmatan OAuth2 kami telah melengkapkan konfigurasi, dan kemudian kami It's masa untuk mencipta token akses OAuth2 dalam Laravel.

3.3. Cipta token akses OAuth2

Apabila menggunakan OAuth2, kita perlu mencipta token akses, yang digunakan untuk melindungi titik akhir API. Dalam Laravel Passort, penjanaan token akses OAuth2 adalah sangat mudah. Kami boleh mengambil contoh kod untuknya dalam laluan yang perlu dilindungi:

Route::get('/user', function (Request $request) {
    return $request->user();
})->middleware('auth:api');

Laluan ini menggunakan perisian tengah auth:api, yang akan menyemak token akses dan menetapkan permintaan kepada pengguna.

  1. Uji OAuth2 menggunakan Posmen

Apabila pembekal perkhidmatan dan token akses OAuth2 telah dikonfigurasikan, kami boleh menguji melalui Posmen. Kami boleh menggunakan Posman untuk membuat permintaan GET untuk bertanya sama ada pengguna boleh mendapatkan token akses atau menggunakan token akses untuk mendapatkan laluan yang dilindungi. Dalam Posman, pengguna memerlukan pengesahan untuk mengakses laluan yang dilindungi. Berikut ialah contoh kod:

GET http://localhost:8000/api/user
Authorization : Bearer {access token}

Dalam kod sampel ini, kami menghantar permintaan GET dan mengesahkan menggunakan token akses OAuth2. Jika semuanya berjalan lancar, API akan mengembalikan maklumat yang dilindungi yang diminta.

  1. Ringkasan

Artikel ini telah memperkenalkan penggunaan Pasport Laravel Kini anda telah menguasai kaedah menggunakan spesifikasi OAuth2 dan Pasport untuk mencipta identiti yang selamat dan cekap dalam aplikasi PHP dan mekanisme kebenaran. Menggunakan Pasport sangat berguna untuk pembangun membina API RESTful dan aplikasi mudah alih dalam Laravel kerana ia mengurangkan kerumitan pembangunan dan meningkatkan kelajuan pembangunan. Saya harap artikel ini dapat memberi rujukan dan bantuan untuk pembangun PHP.

Atas ialah kandungan terperinci Pembangunan PHP: Melaksanakan pembekal perkhidmatan OAuth2 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