Rumah > rangka kerja php > Laravel > Pembangunan Laravel: Bagaimana untuk melaksanakan pengesahan API menggunakan Pasport dan Lumen Laravel?

Pembangunan Laravel: Bagaimana untuk melaksanakan pengesahan API menggunakan Pasport dan Lumen Laravel?

WBOY
Lepaskan: 2023-06-15 20:35:24
asal
1126 orang telah melayarinya

Dengan perkembangan pesat teknologi mudah alih dan pengkomputeran awan, banyak syarikat telah membangunkan perkhidmatan API mereka sendiri dan menjadikannya sebahagian daripada perniagaan teras mereka. Semasa proses ini, menjadi sangat penting untuk melindungi data API dan memastikan bahawa hanya pengguna yang dibenarkan boleh mengakses data API ini. Oleh itu, pengesahan API menjadi topik penting. Dalam Laravel dan Lumen, pengesahan API boleh dilaksanakan menggunakan Pasport Laravel.

Laravel Passport ialah sistem pengesahan API berdasarkan standard OAuth2. Ia menyediakan cara mudah untuk mencipta pengesahan API dan menyokong berbilang pelanggan dan kaedah kebenaran. Dalam artikel ini, kami akan membincangkan cara melaksanakan pengesahan API menggunakan Pasport Laravel dan Lumen.

Pemasangan dan Konfigurasi Laravel Passport

Mula-mula, kita perlu memasang Laravel Passport dalam projek Laravel. Pasang menggunakan arahan berikut:

composer require laravel/passport
Salin selepas log masuk

Setelah pemasangan selesai, kita perlu menjalankan arahan berikut untuk melakukan migrasi yang diperlukan:

php artisan migrate

php artisan passport:install
Salin selepas log masuk

Arahan passport:install di atas akan mencipta klien dan kunci untuk Pengesahan. Kami juga perlu mendaftarkan laluan pengesahan menggunakan kaedah Passport::routes() yang disediakan oleh Laravel Passport dalam penyedia perkhidmatan permulaan:

// app/Providers/AuthServiceProvider.php

use LaravelPassportPassport;

// ...

public function boot() 
{
    // ...
    
    Passport::routes();
}
Salin selepas log masuk

Ini akan mendaftarkan laluan yang disediakan oleh Laravel Passport supaya kami boleh menggunakannya Pengesahan . Pada masa yang sama, kita juga perlu memilih pemacu passport dalam fail konfigurasi config/auth.php:

'guards' => [
    'api' => [
        'driver' => 'passport',
        'provider' => 'users',
    ],
],
Salin selepas log masuk

Menggunakan Pasport Laravel dalam Lumen

Jika projek kami dibuat menggunakan Rangka kerja Lumen, kemudian Kami boleh menggunakan versi Lumen bagi Pasport Laravel, yang menyediakan cara untuk serasi dengan Lumen. Kami boleh memasang Laravel Passport menggunakan arahan berikut:

composer require dusterio/lumen-passport
Salin selepas log masuk

Selepas pemasangan selesai, kami perlu menambah dua baris kod berikut dalam fail bootstrap/app.php untuk mendaftarkan penyedia perkhidmatan Lumen Passport:

$app->register(DusterioLumenPassportPassportServiceProvider::class);
$app->configure('auth');
Salin selepas log masuk

Selepas melengkapkan pendaftaran, kami perlu mendaftarkan penghalaan dan perisian tengah. Kami boleh menambah kod berikut pada fail app/Http/routes.php untuk mendaftarkan laluan yang disediakan oleh Lumen Passport:

$app->group(['middleware' => ['api']], function ($app) {
    DusterioLumenPassportLumenPassport::routes($app, ['prefix' => 'auth']);
});
Salin selepas log masuk

Dalam kod di atas, pilihan prefix menentukan awalan laluan dan middleware menentukan perisian tengah yang digunakan.

Seterusnya, kita perlu menambah perisian tengah yang disediakan oleh Lumen Passport. Dalam fail bootstrap/app.php, tambahkan kod berikut untuk mendaftarkan middleware:

$app->middleware([
    // ...
    DusterioLumenPassportHttpMiddlewareAddCustomHeaders::class,
]);
Salin selepas log masuk

Selepas pendaftaran selesai, kami telah melengkapkan konfigurasi menggunakan Laravel Passport dalam Lumen.

Menggunakan kebenaran kata laluan untuk pengesahan

Setelah kami melengkapkan konfigurasi Pasport Laravel, kami boleh menggunakan kebenaran kata laluan untuk pengesahan. Dalam kaedah kebenaran ini, pelanggan perlu menggunakan ID klien dan kunci rahsia untuk meminta token akses, dan kemudian menggunakan token akses untuk meminta sumber API yang dilindungi.

Kami boleh menggunakan kod berikut untuk meminta token akses:

$postData = [
    'grant_type' => 'password',
    'client_id' => '{client-id}',
    'client_secret' => '{client-secret}',
    'username' => '{username}',
    'password' => '{password}',
    'scope' => '',
];

$ch = curl_init('http://api.example.com/oauth/token');
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);

$accessToken = json_decode($response)->access_token;
Salin selepas log masuk

Dalam kod di atas, kami telah menggunakan perpustakaan curl untuk meminta token akses daripada perkhidmatan API kami. Sila ambil perhatian bahawa {client-id} dan {client-secret} perlu diganti dengan ID pelanggan sebenar dan kunci rahsia, dan {username} dan {password} perlu diganti dengan bukti kelayakan pengguna sebenar.

Setelah kami memperoleh token akses, kami boleh menggunakannya untuk mengakses sumber API yang dilindungi. Apabila mengakses API, kita perlu meletakkan token akses dalam pengepala Kebenaran. Anda boleh melakukan ini dalam Laravel menggunakan kod berikut:

$response = Http::withHeaders([
    'Authorization' => 'Bearer ' . $accessToken,
])->get('http://api.example.com/api/user');
Salin selepas log masuk

Dalam kod di atas, kami menggunakan klien HTTP Laravel untuk mengakses API. Apabila pelanggan membuat permintaan, kami meletakkan token akses dalam pengepala Kebenaran supaya perkhidmatan API boleh mengesahkan token dan mengembalikan sumber yang dilindungi.

Kesimpulan

Menggunakan Pasport Laravel dan Lumen, kami boleh menambah keupayaan pengesahan yang kukuh pada perkhidmatan API kami. Apabila melaksanakan pengesahan API, kita perlu memahami protokol kebenaran OAuth2 dan kaedah kebenarannya. Apabila menggunakan kebenaran kata laluan, pelanggan perlu menggunakan ID klien dan kunci rahsia untuk meminta token akses. Sebaik sahaja kami memperoleh token akses, kami boleh menggunakannya untuk mengakses sumber API yang dilindungi.

Atas ialah kandungan terperinci Pembangunan Laravel: Bagaimana untuk melaksanakan pengesahan API menggunakan Pasport dan Lumen Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan