Rumah >pembangunan bahagian belakang >tutorial php >PHP dan OAuth: Melaksanakan Penyepaduan Log Masuk Google

PHP dan OAuth: Melaksanakan Penyepaduan Log Masuk Google

王林
王林asal
2023-07-30 22:37:551690semak imbas

PHP dan OAuth: Melaksanakan Penyepaduan Log Masuk Google

OAuth ialah standard terbuka untuk kebenaran, yang membolehkan pengguna membenarkan akses kepada data mereka di tapak web lain melalui aplikasi pihak ketiga. Bagi pembangun, menggunakan OAuth boleh membolehkan pengguna log masuk ke platform pihak ketiga, mendapatkan maklumat pengguna dan mengakses data pengguna. Dalam artikel ini, kami akan menumpukan pada cara menggunakan OAuth untuk mencapai penyepaduan dengan Log Masuk Google.

Google menyediakan protokol OAuth 2.0 untuk menyokong pengguna mengakses perkhidmatannya. Untuk melaksanakan penyepaduan log masuk Google, anda perlu mendaftar akaun pembangun Google terlebih dahulu dan membuat projek API Google. Seterusnya, kami akan menerangkan cara melaksanakan penyepaduan log masuk Google dengan langkah berikut.

  1. Buat ID Pelanggan OAuth
    Dalam konsol API Google, buat ID Pelanggan OAuth. Untuk berjaya mencipta ID pelanggan, anda perlu memberikan beberapa maklumat yang diperlukan, seperti nama aplikasi, URL ubah hala, dsb. Selepas penciptaan, ID pelanggan dan rahsia pelanggan dijana, yang akan digunakan dalam langkah seterusnya.
  2. Tetapkan URL Ubah Hala
    Dalam konsol API Google, pastikan URL ubah hala yang betul ditetapkan. URL ubah hala ialah alamat URL yang pengguna akan diubah hala selepas berjaya log masuk supaya kami boleh mendapatkan kod kebenaran dan token akses.
  3. Dapatkan kod kebenaran
    Untuk mendapatkan kod kebenaran, anda perlu membina URL pengesahan OAuth Google, yang mengandungi beberapa parameter, seperti ID pelanggan, URL ubah hala, skop akses aplikasi, dsb. Pengguna akan diubah hala ke URL ini untuk log masuk dan kebenaran. Berikut ialah contoh kod:
$authUrl = 'https://accounts.google.com/o/oauth2/auth';
$client_id = 'YOUR_CLIENT_ID';
$redirect_uri = 'YOUR_REDIRECT_URI';
$scope = 'email profile';
$response_type = 'code';

$url = $authUrl . '?' . http_build_query([
    'client_id' => $client_id,
    'redirect_uri' => $redirect_uri,
    'scope' => $scope,
    'response_type' => $response_type,
]);

header("Location: $url");
exit();
  1. Dapatkan Token Akses
    Selepas pengguna berjaya log masuk dan memberi kebenaran, mereka akan diubah hala ke URL ubah hala yang kami berikan dengan kod kebenaran. Kami perlu menggunakan kod kebenaran ini untuk mendapatkan token akses. Berikut adalah contoh kod:
$tokenUrl = 'https://www.googleapis.com/oauth2/v4/token';
$client_id = 'YOUR_CLIENT_ID';
$client_secret = 'YOUR_CLIENT_SECRET';
$redirect_uri = 'YOUR_REDIRECT_URI';
$code = $_GET['code'];

$data = [
    'code' => $code,
    'client_id' => $client_id,
    'client_secret' => $client_secret,
    'redirect_uri' => $redirect_uri,
    'grant_type' => 'authorization_code',
];

$options = [
    'http' => [
        'header' => "Content-type: application/x-www-form-urlencoded
",
        'method' => 'POST',
        'content' => http_build_query($data),
    ],
];

$context = stream_context_create($options);
$response = file_get_contents($tokenUrl, false, $context);

$token = json_decode($response, true);
$access_token = $token['access_token'];
  1. Dapatkan maklumat pengguna
    Selepas kami mendapat token akses, kami boleh menggunakan token untuk mendapatkan maklumat pengguna seperti e-mel dan nama pengguna. Berikut ialah contoh kod:
$userInfoUrl = 'https://www.googleapis.com/oauth2/v2/userinfo';

$options = [
    'http' => [
        'header' => "Authorization: Bearer $access_token
",
    ],
];

$context = stream_context_create($options);
$response = file_get_contents($userInfoUrl, false, $context);

$userInfo = json_decode($response, true);
$email = $userInfo['email'];
$name = $userInfo['name'];

Dengan lima langkah di atas, kami boleh menyepadukan log masuk Google menggunakan PHP dan OAuth. Kod kebenaran boleh diperolehi selepas pengguna berjaya log masuk dan digunakan untuk mendapatkan token akses. Dengan bantuan token akses kami boleh mendapatkan maklumat pengguna dan menggunakannya dalam aplikasi kami.

Walaupun ini hanyalah contoh asas, ia menunjukkan cara menyepadukan log masuk Google menggunakan PHP dan OAuth. OAuth juga menyokong platform lain, seperti Facebook, Twitter, dll. Dengan menggunakan OAuth, kami boleh melaksanakan penyepaduan log masuk pelbagai platform pihak ketiga dengan mudah, dan mendapatkan maklumat pengguna serta akses kepada data pengguna.

Atas ialah kandungan terperinci PHP dan OAuth: Melaksanakan Penyepaduan Log Masuk Google. 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