Rumah >pembangunan bahagian belakang >tutorial php >Penyepaduan PHP dan OAuth melaksanakan kebenaran akses API pihak ketiga
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:
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.
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
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.
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.
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.
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!