OAuth ialah standard terbuka untuk pengguna membenarkan aplikasi pihak ketiga mengakses sumber dilindungi mereka, seperti data atau foto. Dalam pengaturcaraan PHP, menggunakan OAuth boleh membantu kami mengendalikan interaksi dengan perkhidmatan pihak ketiga dengan mudah. Artikel ini akan memperkenalkan cara menggunakan OAuth dalam PHP untuk kebenaran, pengesahan dan akses kepada perkhidmatan pihak ketiga.
Cara OAuth berfungsi
Sebelum menggunakan OAuth, anda perlu memahami cara OAuth berfungsi. Proses OAuth boleh dibahagikan kepada tiga langkah: meminta token, kebenaran pengguna dan menggunakan token untuk mengakses sumber. Di mana token ialah bukti kelayakan yang digunakan untuk membenarkan akses kepada sumber yang dilindungi. Apabila meminta token, kami perlu menentukan ID pelanggan dan rahsia pelanggan untuk mengesahkan identiti. Selepas kebenaran, pengguna akan memperoleh token akses, yang boleh digunakan untuk mengakses sumber yang dilindungi. Kami perlu memasukkan token ini dalam pengepala permintaan HTTP apabila mengakses sumber.
Aliran kerja OAuth adalah seperti berikut:
Cara menggunakan OAuth dalam PHP
Untuk menggunakan OAuth dalam PHP, anda perlu menggunakan pustaka OAuth. Pada masa ini, terdapat banyak perpustakaan OAuth untuk dipilih, termasuk php-oauth, oauth2-server-php, league/oauth2-client, dsb. Berikut ialah cara menggunakan OAuth menggunakan php-oauth.
Sebelum menggunakan php-oauth, anda perlu memasang perpustakaan terlebih dahulu. Anda boleh menggunakan arahan berikut untuk memasang php-oauth:
composer require php-oauth/oauth1:^1.0
Untuk mencipta klien OAuth, anda perlu menentukan tiga parameter: ID klien, Kunci klien dan titik akhir API. Dalam titik akhir API, anda perlu menentukan URL token permintaan dan dapatkan URL token akses.
use OAuthOAuth1ClientServerTwitter; $client = new Twitter([ 'identifier' => 'client_id', 'secret' => 'client_secret', 'callback_uri' => 'http://your-callback-url.com', 'token_url' => 'https://api.twitter.com/oauth/request_token', 'auth_url' => 'https://api.twitter.com/oauth/authorize', 'api_url' => 'https://api.twitter.com' ]);
Apabila meminta token, anda perlu menghantar permintaan kepada pelayan kebenaran. Dalam perpustakaan php-oauth, kita boleh meminta token menggunakan kaedah getTemporaryCredentials
.
$temporaryCredentials = $client->getTemporaryCredentials();
Kaedah ini mengembalikan bukti kelayakan sementara, yang digunakan untuk membuat permintaan selanjutnya menggunakan perkhidmatan kebenaran untuk melengkapkan kebenaran.
Sebelum kebenaran pengguna, permintaan kebenaran perlu dihantar ke pelayan kebenaran. Dalam pustaka php-oauth, kita boleh menggunakan kaedah getAuthorizationUrl
untuk mendapatkan URL kebenaran
$authorizationUrl = $client->getAuthorizationUrl($temporaryCredentials);
memberikan URL kepada pengguna untuk mendapatkan keizinan, ia akan dihalakan ke URL panggilan balik yang kami tentukan , disertakan dengan kod kebenaran.
Selepas kod kebenaran diperoleh, kita perlu menggunakan kod kebenaran untuk mendapatkan token akses. Dalam perpustakaan php-oauth, kita boleh menggunakan kaedah getTokenCredentials
.
$tokenCredentials = $client->getTokenCredentials($temporaryCredentials, $_GET['oauth_token'], $_GET['oauth_verifier']);
Kaedah ini akan mengembalikan token akses yang boleh digunakan untuk permintaan seterusnya.
Apabila mengakses sumber yang dilindungi, kami perlu memasukkan token akses dalam pengepala permintaan HTTP. Dalam perpustakaan php-oauth, kita boleh menggunakan kaedah get
untuk menghantar permintaan dan memasukkan token akses.
$response = $client->get('https://api.twitter.com/1.1/account/verify_credentials.json', $tokenCredentials);
Selepas mendapat respons, kami boleh memproses data yang dikembalikan oleh API.
Ringkasan
Menggunakan OAuth membolehkan kami membenarkan pengguna dengan mudah dan mengakses sumber yang dilindungi. Dalam pengaturcaraan PHP, terdapat banyak perpustakaan OAuth untuk dipilih, termasuk php-oauth, oauth2-server-php, league/oauth2-client, dsb. Apabila menggunakan OAuth, kita perlu memahami cara ia berfungsi dan mengikuti proses untuk menggunakan pustaka OAuth.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan OAuth dalam pengaturcaraan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!