Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan OpenID Connect untuk pengesahan API dalam PHP

Cara menggunakan OpenID Connect untuk pengesahan API dalam PHP

WBOY
WBOYasal
2023-06-17 19:33:081132semak imbas

Dalam era digital hari ini, pengesahan API telah menjadi cara teknikal yang digunakan secara meluas. Untuk memastikan maklumat API selamat, banyak tapak web dan aplikasi menggunakan protokol OpenID Connect untuk pengesahan. Protokol ini membolehkan anda menggunakan pembekal identiti pihak ketiga (IdP) untuk mengesahkan pengguna dan menyediakan API anda dengan keupayaan untuk menukar token identiti dan token akses. Dalam artikel ini, kami akan meneroka cara menggunakan OpenID Connect untuk pengesahan API dalam PHP.

  1. Pasang pakej pembangunan PHP

Pertama, anda perlu memasang pakej pembangunan PHP yang berkaitan OpenID Connect dalam projek PHP anda untuk menggunakan OpenID Connect API dalam aplikasi anda . Jika anda menggunakan Pengurus Tindakan Komposer, laksanakan arahan berikut dalam direktori akar projek anda untuk memuat turun dan memasang:

komposer memerlukan php-openid/php-openid-connect

Jika anda tidak melakukannya Menggunakan Komposer, anda boleh memasangnya secara manual dengan memuat turun pakej OpenID Connect PHP daripada GitHub dan meletakkannya dalam direktori projek anda.

  1. Daftarkan permohonan anda

Untuk mula menggunakan protokol OpenID Connect anda perlu mendaftarkan permohonan anda dengan pembekal pilihan anda dan dapatkan ID pelanggan dan rahsia pelanggan . Proses pendaftaran mungkin berbeza-beza bergantung pada pembekal yang anda gunakan, tetapi kebanyakan pendaftaran pembekal disediakan berdasarkan spesifikasi OAuth2.

  1. Menulis Kod Pengesahan

Setelah anda memasang pakej OpenID Connect ke dalam projek PHP anda dan mendaftarkan aplikasi anda, anda boleh mula menulis kod pengesahan.

Dalam contoh ini kami akan menggunakan Auth0 sebagai pembekal ID terbuka. Mula-mula, anda perlu menyediakan pilihan konfigurasi, mengisi ID pelanggan dan rahsia pelanggan anda:

require_once "vendor/autoload.php";

$config = [
    'auth0' => [
        'domain' => 'YOUR_AUTH0_DOMAIN',
        'client_id' => 'YOUR_AUTH0_CLIENT_ID',
        'client_secret' => 'YOUR_AUTH0_CLIENT_SECRET',
        'redirect_uri' => 'YOUR_AUTH0_REDIRECT_URI',
        'scope' => 'openid profile email'
    ]
];

Seterusnya, anda perlu mencipta objek pengesahan dan membina URL pengesahan:

$auth0 = new Auth0SDKAuth0($config['auth0']);
$auth_url = $auth0->get_login_url();

Ini akan berikan pengguna halaman log masuk di mana mereka perlu memasukkan kelayakan mereka untuk mengesahkan. Setelah pengguna telah mengesahkan, kod akan diubah hala ke URI yang disediakan dengan menetapkan URI ubah hala.

Anda kemudiannya perlu mendapatkan token akses dengan mendapatkan kod kebenaran:

$auth0 = new Auth0SDKAuth0($config['auth0']);
$access_token = $auth0->get_access_token();

Pada ketika ini, anda telah berjaya melengkapkan pengesahan dan memperoleh token akses daripada perkhidmatan pertukaran OpenID Connect. Anda kini boleh menggunakan token akses ini untuk mengakses titik akhir API yang dilindungi dan membenarkan permintaan pengguna dengannya.

  1. Gunakan token akses untuk mengakses API

Anda boleh menggunakan token akses yang diperoleh untuk membuat permintaan kepada titik akhir API yang dilindungi untuk mengakses data dan sumber yang berkaitan.

$auth0 = new Auth0SDKAuth0($config['auth0']);
$access_token = $auth0->get_access_token();

$api_url = "https://example.com/api/protected-endpoint";

$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => $api_url,
    CURLOPT_HTTPHEADER => array(
        'Authorization: Bearer ' . $access_token,
        'Content-Type: application/json'
    )
));
$response = curl_exec($curl);
curl_close($curl);

echo $response;

Dalam contoh di atas, kami menggunakan cURL untuk membuat permintaan GET untuk mengakses titik akhir API menggunakan token akses yang diperoleh. Perhatikan bahawa kami menetapkan pengepala Kebenaran dalam pengepala permintaan dan menggunakan jenis token Pembawa bersama-sama dengan token akses.

Kesimpulan

Dengan menggunakan protokol OAuth 2.0 dan OpenID Connect, melaksanakan pengesahan API dalam PHP tidak lagi menjadi masalah. Dengan mengikut langkah di atas dan contoh kod dengan betul, anda boleh memastikan aplikasi dan titik akhir API anda selamat dan boleh dipercayai dari segi pengesahan.

Atas ialah kandungan terperinci Cara menggunakan OpenID Connect untuk pengesahan API 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