Bagaimana untuk menggunakan OAuth dalam pengaturcaraan PHP?

WBOY
Lepaskan: 2023-06-12 08:14:02
asal
1620 orang telah melayarinya

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:

  1. Pelanggan meminta token daripada pelayan kebenaran.
  2. Pelayan kebenaran mengesahkan identiti pelanggan dan, jika pengesahan berjaya, mengembalikan kod kebenaran kepada pelanggan.
  3. Pelanggan menghantar kod kebenaran kepada pelayan token untuk mendapatkan token akses.
  4. Pelayan token mengesahkan kesahihan kod kebenaran dan menghantar token akses kepada pelanggan.
  5. Pelanggan perlu memasukkan token akses dalam pengepala permintaan apabila menghantar setiap permintaan HTTP.

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.

  1. Pasang 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
Salin selepas log masuk
  1. Buat klien OAuth

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'
]);
Salin selepas log masuk
  1. Token Permintaan

Apabila meminta token, anda perlu menghantar permintaan kepada pelayan kebenaran. Dalam perpustakaan php-oauth, kita boleh meminta token menggunakan kaedah getTemporaryCredentials.

$temporaryCredentials = $client->getTemporaryCredentials();
Salin selepas log masuk

Kaedah ini mengembalikan bukti kelayakan sementara, yang digunakan untuk membuat permintaan selanjutnya menggunakan perkhidmatan kebenaran untuk melengkapkan kebenaran.

  1. Keizinan Pengguna

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);
Salin selepas log masuk

memberikan URL kepada pengguna untuk mendapatkan keizinan, ia akan dihalakan ke URL panggilan balik yang kami tentukan , disertakan dengan kod kebenaran.

  1. Gunakan kod kebenaran untuk mendapatkan token akses

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']);
Salin selepas log masuk

Kaedah ini akan mengembalikan token akses yang boleh digunakan untuk permintaan seterusnya.

  1. Gunakan token akses untuk mengakses sumber

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);
Salin selepas log masuk

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!

Label berkaitan:
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