Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan pengesahan dan kebenaran OAuth dalam PHP?

Bagaimana untuk melaksanakan pengesahan dan kebenaran OAuth dalam PHP?

王林
王林asal
2023-06-29 12:05:19929semak imbas

Bagaimana untuk melaksanakan pengesahan dan kebenaran OAuth dalam PHP?

OAuth ialah standard terbuka untuk membenarkan aplikasi pihak ketiga mengakses sumber pengguna. Ia membolehkan pengguna memberikan akses kepada sumber mereka kepada pihak ketiga tanpa berkongsi kata laluan mereka dengan mereka.

Dalam PHP, melaksanakan pengesahan dan kebenaran OAuth memerlukan langkah berikut:

Langkah pertama, daftarkan aplikasi
Sebelum anda mula menggunakan OAuth, anda perlu mendaftarkan aplikasi terlebih dahulu dan mendapatkan ID dan kunci pelanggan. Maklumat ini akan digunakan untuk mengesahkan aplikasi anda dan berfungsi sebagai bukti kelayakan untuk panggilan API.

Langkah kedua ialah memperkenalkan perpustakaan OAuth
Dalam PHP, terdapat banyak perpustakaan OAuth siap sedia tersedia. Antara yang lebih biasa digunakan ialah PHPoAuthLib dan League OAuth2 Client. Anda boleh memilih perpustakaan yang sesuai mengikut keperluan anda dan memperkenalkannya ke dalam projek anda.

Sebagai contoh, untuk menggunakan perpustakaan PHPoAuthLib, anda boleh menggunakan komposer untuk memasang:

composer require league/oauth2-client

Langkah ketiga, konfigurasi klien OAuth
Selepas memperkenalkan perpustakaan OAuth, anda perlu mengkonfigurasi klien OAuth. Ini termasuk maklumat tetapan seperti ID klien, kunci, URL panggil balik, dsb.

Gunakan perpustakaan PHPoAuthLib untuk mencipta contoh klien OAuth:

use LeagueOAuth2ClientProviderGenericProvider;

$provider = new GenericProvider([
    'clientId'                => 'your_client_id',
    'clientSecret'            => 'your_client_secret',
    'redirectUri'             => 'http://your-redirect-url',
    'urlAuthorize'            => 'http://authorization-url',
    'urlAccessToken'          => 'http://access-token-url',
    'urlResourceOwnerDetails' => 'http://resource-owner-details-url'
]);

Ganti nilai parameter dalam kod di atas mengikut situasi sebenar anda.

Langkah keempat, dapatkan pautan keizinan
Selepas mengkonfigurasi klien OAuth, anda boleh menggunakannya untuk menjana pautan keizinan Pengguna mengklik pautan untuk membenarkan dan mendapatkan token akses.

Menggunakan perpustakaan PHPoAuthLib, kod sampel untuk mendapatkan pautan kebenaran adalah seperti berikut:

$authorizationUrl = $provider->getAuthorizationUrl();
$_SESSION['oauth2state'] = $provider->getState();

echo '<a href="' . $authorizationUrl . '">点击授权</a>';

Paparkan pautan kebenaran yang dijana pada halaman untuk diklik oleh pengguna.

Langkah 5, kendalikan panggilan balik
Selepas pengguna mengklik pautan kebenaran, ia akan diubah hala ke URL panggil balik yang anda tetapkan dalam klien OAuth. Dalam URL panggil balik, fungsi panggil balik selepas kebenaran yang berjaya perlu diproses.

Menggunakan perpustakaan PHPoAuthLib, kod sampel untuk mengendalikan panggilan balik adalah seperti berikut:

session_start();

$state = isset($_GET['state']) ? $_GET['state'] : null;

if (!isset($_SESSION['oauth2state']) || $state != $_SESSION['oauth2state']) {
    exit('授权失败');
}

$token = $provider->getAccessToken('authorization_code', [
    'code' => $_GET['code']
]);

echo '访问令牌:' . $token->getToken();

Apabila mengendalikan panggilan balik, mula-mula sahkan sama ada nilai status panggilan balik sepadan dengan nilai status yang disimpan sebelum ini untuk mengelakkan serangan pemalsuan permintaan merentas tapak (CSRF). Kemudian, dapatkan token akses melalui kod kebenaran.

Langkah enam, hubungi API
Selepas berjaya mendapatkan token akses, anda boleh menggunakan token untuk memanggil API yang berkaitan dan mendapatkan sumber pengguna.

Menggunakan perpustakaan PHPoAuthLib, kod sampel untuk memanggil API adalah seperti berikut:

$response = $provider->getAuthenticatedRequest(
    'GET',
    'http://api-url',
    $token
);

$apiResponse = $provider->getParsedResponse($response);
print_r($apiResponse);

Ganti URL API dalam kod di atas mengikut situasi sebenar, dan tetapkan kaedah permintaan dan parameter mengikut keperluan API.

Melalui langkah di atas, anda boleh melaksanakan pengesahan dan kebenaran OAuth dalam PHP. Sama ada penyepaduan dengan platform media sosial atau aplikasi pihak ketiga yang lain, OAuth menyediakan mekanisme kebenaran yang selamat dan mudah. Menguasai cara menggunakan PHP untuk melaksanakan OAuth akan membawa fleksibiliti dan fungsi yang lebih besar kepada projek anda.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pengesahan dan kebenaran OAuth dalam PHP?. 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