Rumah >pembangunan bahagian belakang >tutorial php >Penyepaduan PHP dan OAuth melaksanakan kebenaran akses API pihak ketiga

Penyepaduan PHP dan OAuth melaksanakan kebenaran akses API pihak ketiga

WBOY
WBOYasal
2023-06-25 12:21:261682semak imbas

Dengan pembangunan berterusan teknologi Internet, banyak produk perlu memanggil antara muka API pihak ketiga untuk mencapai pengembangan fungsi. Antaranya, OAuth ialah rangka kerja kebenaran standard yang digunakan secara meluas Tujuannya adalah untuk menyediakan mekanisme kebenaran antara aplikasi yang berbeza supaya pengguna boleh membenarkan aplikasi pihak ketiga untuk mengakses sumber mereka tanpa mendedahkan nama pengguna dan kata laluan mereka kepada pihak Ketiga. Artikel ini akan memperkenalkan cara menggunakan PHP untuk menyepadukan rangka kerja OAuth untuk melaksanakan kebenaran akses API pihak ketiga.

1. Konsep asas OAuth

OAuth ialah rangka kerja kebenaran standard terbuka adalah untuk menyediakan mekanisme kebenaran antara aplikasi yang berbeza supaya pengguna boleh membenarkan aplikasi pihak ketiga untuk mengakses sumber mereka tanpa Dedahkan nama pengguna dan kata laluan kepada pihak ketiga. pihak.

Dalam rangka kerja OAuth, terdapat tiga peranan: Pelayan Kebenaran, Pelayan Sumber dan Pelanggan. Antaranya, pelayan kebenaran bertanggungjawab untuk mengesahkan dan membenarkan pengguna, pelayan sumber bertanggungjawab untuk menyimpan dan menyediakan sumber, dan klien adalah aplikasi yang perlu mengakses sumber.

Proses kebenaran OAuth secara amnya merangkumi langkah berikut:

  1. Pendaftaran pelanggan: Pelanggan mendaftar dengan pelayan kebenaran dan memohon ID pelanggan dan kunci rahsia pelanggan.
  2. Minta kebenaran: Pelanggan meminta kebenaran pengguna daripada pelayan kebenaran, dan pelayan kebenaran mengubah hala pengguna ke halaman log masuk dan memerlukan pengguna memasukkan nama pengguna dan kata laluan.
  3. Kebenaran pengguna: Selepas pengguna memasukkan nama pengguna dan kata laluan mereka, pelayan kebenaran mengesahkan identiti pengguna dan memerlukan pengguna untuk meluluskan permintaan pelanggan untuk mengakses sumbernya.
  4. Dapatkan kebenaran: Pelayan kebenaran mengeluarkan token akses dan muat semula token kepada pelanggan.
  5. Akses sumber: Pelanggan menggunakan token akses untuk mengakses pelayan sumber untuk mendapatkan data pengguna.
  6. Token muat semula: Apabila token akses tamat tempoh, pelanggan menggunakan token muat semula untuk meminta token akses baharu daripada pelayan kebenaran.

2. Integrasi PHP dan OAuth

PHP menyediakan banyak perpustakaan kelas dan rangka kerja untuk melaksanakan kebenaran OAuth dengan mudah. Berikut mengambil oauth2-client sebagai contoh untuk memperkenalkan cara menggunakan PHP untuk menyepadukan rangka kerja OAuth untuk melaksanakan kebenaran akses API pihak ketiga.

  1. Pasang oauth2-client

oauth2-client ialah klien OAuth2.0 yang dilaksanakan dalam PHP, yang boleh digunakan untuk meminta token akses daripada pelayan kebenaran OAuth2.0. Memasang oauth2-client boleh dilakukan melalui komposer. Jalankan arahan berikut dalam terminal untuk memasang oauth2-client:

$ composer require league/oauth2-client
  1. Cipta klien

Sebelum menggunakan oauth2-client, anda perlu mencipta objek klien. Objek klien mengandungi maklumat konfigurasi berikut:

<?php
$provider = new LeagueOAuth2ClientProviderGenericProvider([
    'clientId'                => '...',
    'clientSecret'            => '...',
    'redirectUri'             => '...',
    'urlAuthorize'            => '...',
    'urlAccessToken'          => '...',
    'urlResourceOwnerDetails' => '...'
]);
?>

Di sini, clientId, clientSecret dan redirectUri diperlukan dan pautan URL lain perlu diisi mengikut situasi sebenar.

  1. Minta Kod Kebenaran

Seterusnya, kami perlu meminta kod kebenaran. Dalam proses kebenaran OAuth2.0, pelanggan perlu mendapatkan kod kebenaran terlebih dahulu, dan kemudian menggunakan kod kebenaran untuk meminta token akses daripada pelayan kebenaran.

<?php
$authUrl = $provider->getAuthorizationUrl();
header('Location: '.$authUrl);

Dalam kod di atas, kami memperoleh pautan permintaan kod kebenaran melalui kaedah getAuthorizationUrl dan menggunakan fungsi pengepala untuk mengubah hala pengguna ke pautan kebenaran, menunggu kebenaran pengguna.

  1. Dapatkan token akses

Selepas kebenaran berjaya, pelayan kebenaran akan mengubah hala kod kebenaran ke alamat yang dinyatakan dalam item konfigurasi redirectUri dan lulus kod kebenaran dalam bentuk parameter GET. Kami boleh meminta token akses daripada pelayan kebenaran melalui kod kebenaran.

<?php
$code = $_GET['code'];
$token = $provider->getAccessToken('authorization_code', [
    'code' => $code
]);
echo $token->getToken();
?>

Dalam kod di atas, kami menggunakan kaedah getAccessToken untuk meminta token akses dan lulus kod kebenaran sebagai parameter. Selepas berjaya mendapatkan token akses, kita boleh mendapatkan nilai token akses melalui kaedah getToken.

  1. Muat semula token akses

Apabila token akses tamat tempoh, anda perlu mendapatkan token akses baharu dengan memuat semula token. Dalam oauth2-client, kaedah refreshToken boleh digunakan untuk menyegarkan token.

<?php
$refreshToken = $token->getRefreshToken();
$newToken = $provider->getAccessToken('refresh_token', [
    'refresh_token' => $refreshToken
]);
echo $newToken->getToken();
?>

Dalam kod di atas, kami mendapat token akses lama melalui kaedah getToken, dan menyegarkannya melalui kaedah refreshToken untuk mendapatkan token akses baharu. Adalah penting untuk ambil perhatian bahawa token muat semula hanya dikembalikan apabila token akses diperoleh.

3. Ringkasan

Artikel ini memperkenalkan cara menggunakan PHP untuk menyepadukan rangka kerja OAuth untuk mencapai kebenaran akses API pihak ketiga. Melalui penyelesaian ini, kami boleh mengakses API yang disediakan oleh pihak ketiga dengan mudah tanpa mendedahkan nama pengguna dan kata laluan pengguna kepada pihak ketiga. Jika anda perlu melaksanakan kebenaran akses API pihak ketiga dalam produk anda sendiri, anda boleh merujuk kepada kandungan yang diterangkan dalam artikel ini, saya harap ia akan membantu anda.

Atas ialah kandungan terperinci Penyepaduan PHP dan OAuth melaksanakan kebenaran akses API pihak ketiga. 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