Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Satu artikel membincangkan cara memasang sambungan oauth2 dalam php7

Satu artikel membincangkan cara memasang sambungan oauth2 dalam php7

PHPz
PHPzasal
2023-03-21 10:50:421928semak imbas

PHP7 ialah bahasa pengaturcaraan cekap yang sentiasa menjadi pilihan popular dalam bidang pembangunan web. Protokol OAuth2 ialah standard terbuka untuk pengesahan dan kebenaran, digunakan untuk melindungi keselamatan aplikasi web dan privasi pengguna. Sekarang, mari kita terokai cara memasang sambungan OAuth2 dalam PHP7 supaya kita boleh menggunakan protokol ini dalam pembangunan web.

  1. Pasang sambungan OAuth2

Untuk memasang sambungan OAuth2 dalam PHP7, kita perlu menggunakan arahan pecl. Jalankan arahan berikut dalam terminal:

pecl install oauth-2.0.4

Jika pecl tidak dipasang pada sistem anda, anda boleh menggunakan arahan berikut untuk memasangnya:

sudo apt-get install php-pear
  1. Konfigurasikan fail PHP .ini

Selepas pemasangan, kami perlu menambah sambungan OAuth2 dalam fail PHP.ini. Jalankan arahan berikut dalam terminal untuk mencari laluan fail php.ini anda:

php --ini

Buka fail php.ini yang ditemui dan tambah kod berikut pada penghujung:

extension=oauth.so

Simpan fail Dan mulakan semula perkhidmatan PHP-FPM:

sudo systemctl restart php7-fpm

Kini, sambungan OAuth2 telah berjaya dipasang dan dikonfigurasikan. Seterusnya mari belajar cara menggunakan protokol kebenaran OAuth2 untuk melindungi aplikasi web.

  1. Menggunakan protokol OAuth2

OAuth2 ialah protokol kompleks yang mengandungi banyak proses kebenaran dan pengesahan yang berbeza. Di sini kami hanya memperkenalkan salah satu proses untuk menunjukkan cara menggunakan sambungan OAuth2.

Pertama, kita perlu mendaftarkan permohonan dan mendapatkan ID pelanggan dan rahsia pelanggan. Kami kemudiannya boleh menggunakan kod PHP untuk memanggil aliran kebenaran yang disediakan oleh sambungan OAuth2:

<?php
require_once(&#39;vendor/autoload.php&#39;);

$provider = new \League\OAuth2\Client\Provider\GenericProvider([
    &#39;clientId&#39;                => '{clientId}',
    'clientSecret'            => '{clientSecret}',
    'redirectUri'             => 'http://example.com/callback',
    'urlAuthorize'            => 'http://example.com/authorize',
    'urlAccessToken'          => 'http://example.com/token',
    'urlResourceOwnerDetails' => 'http://example.com/me',
]);

$authorizationUrl = $provider->getAuthorizationUrl();
$_SESSION['oauth2state'] = $provider->getState();

header('Location: ' . $authorizationUrl);

Contoh di atas akan menjana URL kebenaran dan mengubah hala pengguna ke URL tersebut. Pada URL tersebut, pengguna perlu log masuk dan membenarkan aplikasi kami untuk mengakses data pengguna tertentu. Jika pengguna membenarkan permohonan kami, kami akan menerima kod kebenaran yang boleh ditukar dengan token akses menggunakan kod berikut:

<?php
require_once(&#39;vendor/autoload.php&#39;);

$provider = new \League\OAuth2\Client\Provider\GenericProvider([
    &#39;clientId&#39;                => '{clientId}',
    'clientSecret'            => '{clientSecret}',
    'redirectUri'             => 'http://example.com/callback',
    'urlAuthorize'            => 'http://example.com/authorize',
    'urlAccessToken'          => 'http://example.com/token',
    'urlResourceOwnerDetails' => 'http://example.com/me',
]);

if (!isset($_GET['code'])) {

    $options = [
        'state' => 'OPTIONAL_CUSTOM_CONFIG_VALUE',
        'scope' => ['scope1', 'scope2'],
    ];

    $authorizationUrl = $provider->getAuthorizationUrl($options);
    $_SESSION['oauth2state'] = $provider->getState();

    header('Location: ' . $authorizationUrl);
    exit;

} elseif (empty($_GET['state']) || ($_GET['state'] !== $_SESSION['oauth2state'])) {

    unset($_SESSION['oauth2state']);
    exit('Invalid state');

} else {

    $token = $provider->getAccessToken('authorization_code', [
        'code' => $_GET['code']
    ]);

    echo $token->getToken();
}

Kod di atas akan mengembalikan token akses yang boleh digunakan oleh Kad untuk mengakses data pengguna. Kami hanya perlu menghantar token akses kepada API yang disediakan oleh sambungan OAuth2 untuk mengakses data pengguna:

<?php
require_once(&#39;vendor/autoload.php&#39;);

$provider = new \League\OAuth2\Client\Provider\GenericProvider([
    &#39;clientId&#39;                => '{clientId}',
    'clientSecret'            => '{clientSecret}',
    'redirectUri'             => 'http://example.com/callback',
    'urlAuthorize'            => 'http://example.com/authorize',
    'urlAccessToken'          => 'http://example.com/token',
    'urlResourceOwnerDetails' => 'http://example.com/me',
]);

$accessToken = 'YOUR_ACCESS_TOKEN';

$response = $provider->getAuthenticatedRequest(
    'GET',
    'http://example.com/api/data',
    $accessToken
);

$data = json_decode((string) $provider->getResponse($response)->getBody(), true);

print_r($data);

Contoh di atas akan mendapat token akses dan memanggil API untuk mengakses data pengguna.

  1. Ringkasan

Dalam artikel ini, kami mempelajari cara memasang sambungan OAuth2 dalam PHP7 dan selamatkan aplikasi web menggunakan protokol kebenaran OAuth2 Keselamatan. Protokol OAuth2 ialah protokol keselamatan penting yang boleh membantu kami melindungi privasi pengguna dan keselamatan data semasa pembangunan web. Dalam projek pembangunan web anda yang seterusnya, ingat untuk menggunakan protokol OAuth2 untuk memastikan data pengguna selamat.

Atas ialah kandungan terperinci Satu artikel membincangkan cara memasang sambungan oauth2 dalam php7. 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