Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan pengesahan OAuth dalam PHP

Cara menggunakan pengesahan OAuth dalam PHP

PHPz
PHPzasal
2023-06-22 08:30:06932semak imbas

Protokol pengesahan OAuth telah menjadi semakin popular sejak beberapa tahun kebelakangan ini apabila semakin banyak aplikasi mula menyokong log masuk pihak ketiga. Pelaksanaan OAuth membolehkan aplikasi pihak ketiga mendapatkan kebenaran pengguna daripada aplikasi lain tanpa mengetahui kata laluan pengguna. PHP, sebagai bahasa pengaturcaraan bahagian pelayan yang digunakan secara meluas, juga menyokong pengesahan OAuth. Artikel ini akan memperkenalkan anda kepada cara menggunakan perpustakaan OAuth PHP untuk melaksanakan pengesahan OAuth.

Apakah itu OAuth?

OAuth ialah protokol standard kebenaran Ia adalah protokol terbuka dan selamat yang membenarkan aplikasi mengakses API atau data aplikasi lain dengan kebenaran pengguna tanpa mendedahkan kata laluan. Ia digunakan terutamanya untuk membenarkan pengguna membenarkan aplikasi pihak ketiga mengakses data pengguna aplikasi lain tanpa memberikan nama pengguna dan kata laluan kepada aplikasi pihak ketiga.

Proses asas pengesahan OAuth:

Proses kebenaran OAuth 2.0 ialah proses berdasarkan akses yang dibenarkan. Proses asasnya adalah seperti berikut:

  1. Pengguna meminta akses kepada sumber daripada aplikasi klien.
  2. Aplikasi klien mengubah hala pengguna ke pelayan pengesahan untuk memberikannya maklumat pengesahan pengguna yang diperlukan.
  3. Pelayan pengesahan meminta pengguna sama ada untuk membenarkan aplikasi klien untuk mengakses sumber pengguna.
  4. Dengan kebenaran pengguna, pelayan pengesahan mengeluarkan token akses kepada aplikasi klien.
  5. Aplikasi klien menyediakan token akses kepada pelayan sumber.
  6. Pelayan sumber mengesahkan token akses; jika token akses adalah sah, menyediakan sumber yang diminta kepada aplikasi klien.

Gunakan perpustakaan OAuth PHP untuk melaksanakan pengesahan OAuth

Pertama sekali, anda perlu memahami konsep asas dan penggunaan perpustakaan sambungan OAuth PHP Perpustakaan sambungan OAuth PHP menyediakan a pelaksanaan langsung protokol OAuth Ia menggunakan spesifikasi OAuth versi 1.0a dan 2.0. Pustaka sambungan PHP OAuth perlu dipasang pada pelayan anda PHP OAuth dan OAuth 2.0 bukanlah perkara yang sama, jadi anda perlu memasang dua versi pustaka yang berbeza.

Berikut ialah langkah untuk melaksanakan pengesahan OAuth dalam PHP menggunakan pustaka OAuth:

Langkah 1: Pasang pustaka sambungan OAuth PHP

Pertama sekali, anda perlu menyemak sama ada anda pelayan telah Pasang pustaka sambungan PHP OAuth. Jika sudah dipasang, langkau langkah ini. Jika ia tidak dipasang, sila ikuti langkah di bawah untuk memasangnya:

  1. Pasang terus menggunakan arahan (kebenaran root diperlukan):

    sudo apt-get install php -oauth

  2. Jika anda mahu memasangnya secara manual, sila ikut langkah berikut:

    1. Muat turun versi terkini pustaka sambungan OAuth PHP.
    2. Nyahzip fail yang dimuat turun dan masukkan direktori yang dinyahzip.
    3. Laksanakan arahan berikut:

      phpize

    4. Konfigurasi:

      ./configure

    5. Kompil dan pasang:

      buat && sudo make install

Langkah 2: Sediakan maklumat aplikasi untuk OAuth

Untuk menggunakan pengesahan OAuth, anda perlu mendaftarkan permohonan anda dengan pembekal OAuth dan mendapatkan bukti kelayakan anda. Setiap pembekal OAuth mempunyai proses pendaftaran aplikasinya yang khusus dan anda perlu mengikut panduan mereka untuk melengkapkan proses pendaftaran. Selepas anda berjaya mendaftar dan mendapatkan kelayakan anda, anda akan mendapat maklumat berikut:

  1. ID Pelanggan
  2. Kunci Pelanggan
  3. Skop Kebenaran
  4. Keizinan titik akhir
  5. Titik akhir token

Langkah 3: Sambungkan kepada pembekal OAuth menggunakan bukti kelayakan OAuth

Untuk menyambung kepada pembekal OAuth dan membuat permintaan kepadanya Untuk memberi kebenaran, sila ikut langkah di bawah:

  1. Buat objek OAuth:

    $oauth = new OAuth(

     'your client id',   //客户端ID
     'your client secret',   //客户端密钥
     OAUTH_SIG_METHOD_HMACSHA1,  //签名方法
     OAUTH_AUTH_TYPE_AUTHORIZATION //认证类型

    );

  2. Tetapkan keizinan dan titik akhir token untuk pembekal OAuth:

    $oauth->setAuthType(OAUTH_AUTH_TYPE_AUTHORIZATION);
    $oauth->setRequestTokenUrl('https:// provider.com oauth/request_token');
    $oauth->setAccessTokenUrl('https://provider.com/oauth/access_token');
    $oauth->setAuthUrl('https:// provider.com/ oauth/authorize');

  3. Dapatkan token permintaan:

    $oauth->getRequestToken('https://provider.com/oauth /request_token', 'url panggilan balik');

Langkah 4: Gunakan token kebenaran OAuth

Selepas mendapatkan token permintaan, anda perlu menggunakan token kebenaran untuk mengakses sumber yang dilindungi pembekal OAuth. Untuk menggunakan token kebenaran, anda perlu menghantarnya kepada pembekal OAuth dan meminta token akses. Selepas mendapatkan token akses, anda boleh mengakses sumber yang memanggil API yang dilindungi.

Kod sampel berikut menunjukkan cara menggunakan token kebenaran untuk mengakses API yang dilindungi.

  1. Buat objek OAuth:

    $oauth = new OAuth(

     'your client id',   //客户端ID
     'your client secret',   //客户端密钥
     OAUTH_SIG_METHOD_HMACSHA1,  //签名方法
     OAUTH_AUTH_TYPE_AUTHORIZATION //认证类型

    );

  2. tetapan Keizinan dan titik akhir token untuk pembekal OAuth:

    $oauth->setAuthType(OAUTH_AUTH_TYPE_AUTHORIZATION);
    $oauth->setRequestTokenUrl('https://provider.com/oauth/request');<_token> $oauth->setAccessTokenUrl('https://provider.com/oauth/access_token');
    $oauth->setAuthUrl('https://provider.com/oauth/authorize' );

  3. Dapatkan token kebenaran:

    $oauth->setToken('token akses anda', 'rahsia token akses anda');

  4. Akses API yang dilindungi:

    $oauth->fetch('https://provider.com/api/resource');

Ringkasan

Pengesahan OAuth ialah standard kebenaran popular yang membolehkan aplikasi meminta data pengguna dengan selamat daripada aplikasi lain tanpa mendedahkan kata laluan. Pustaka sambungan OAuth PHP menyediakan pelaksanaan langsung protokol OAuth, jadi kami boleh melaksanakan pengesahan OAuth dalam PHP dengan mudah. Dengan menggunakan pengesahan OAuth, kami boleh memastikan bahawa data pengguna adalah selamat dan tidak terdedah kepada penyalahgunaan.

Atas ialah kandungan terperinci Cara menggunakan pengesahan OAuth 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