Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melakukan penyepaduan log masuk Github menggunakan PHP dan OAuth

Bagaimana untuk melakukan penyepaduan log masuk Github menggunakan PHP dan OAuth

王林
王林asal
2023-07-28 15:06:16867semak imbas

Cara menggunakan PHP dan OAuth untuk penyepaduan log masuk Github

Dalam era Internet semasa, log masuk pengguna telah menjadi salah satu ciri yang diperlukan untuk hampir semua tapak web dan aplikasi. Walau bagaimanapun, untuk kemudahan pengguna, banyak tapak web memilih untuk memudahkan proses log masuk dengan menyepadukan pembekal log masuk pihak ketiga. Dalam artikel ini, kami akan meneroka cara melaksanakan penyepaduan log masuk Github menggunakan PHP dan OAuth.

OAuth (Keizinan Terbuka) ialah standard terbuka yang membenarkan pengguna membenarkan aplikasi pihak ketiga mengakses sumber mereka tanpa memberikan nama pengguna dan kata laluan mereka. Sebagai platform pengurusan kod sumber terbuka terkemuka di dunia, Github menyediakan mekanisme pengesahan OAuth2.0 untuk pengguna log masuk.

Pertama, kita perlu memohon aplikasi OAuth di Github. Log masuk ke akaun Github anda, pergi ke "Tetapan" -> "Tetapan pembangun" -> "Apl OAuth", klik "Apl OAuth baharu" untuk mencipta aplikasi OAuth baharu. Isikan maklumat asas aplikasi, termasuk nama, penerangan, URL halaman utama dan URL panggil balik. Dalam URL panggil balik, isikan URL yang anda mahu pengguna kembali selepas mereka melengkapkan log masuk mereka. Setelah selesai, Github akan memberikan permohonan anda dengan bukti kelayakan "ID Pelanggan" dan "Rahsia Pelanggan".

Seterusnya, kita perlu melaksanakan penyepaduan log masuk Github dalam PHP. Mula-mula, cipta fail yang dipanggil "github_login.php" dan import perpustakaan OAuth:

<?php
require_once 'oauth/OAuth.php';

Kemudian, tentukan kelayakan kebenaran dan URL panggil balik untuk apl Github anda:

$clientId = 'YOUR_CLIENT_ID';
$clientSecret = 'YOUR_CLIENT_SECRET';
$redirectUri = 'YOUR_REDIRECT_URL';

Dalam penyepaduan log masuk Github, kita perlu melaksanakan dua langkah. Pertama, kita perlu menjana pautan log masuk supaya pengguna mengkliknya dan melompat ke Github untuk pengesahan:

$baseUrl = 'https://github.com/login/oauth/authorize';
$params = array(
    'client_id' => $clientId,
    'redirect_uri' => $redirectUri,
    'scope' => 'user'
);
$loginUrl = $baseUrl . '?' . http_build_query($params);

echo '<a href="' . $loginUrl . '">使用Github账号登录</a>';

Apabila pengguna mengklik pautan log masuk, Github akan melompat pengguna ke URL panggil balik yang ditentukan dengan kod kebenaran. Dalam URL panggil balik, kita boleh mendapatkan kod kebenaran melalui kod berikut:

$code = $_GET['code'];

Seterusnya, kita perlu menggunakan kod kebenaran untuk mendapatkan token akses daripada Github:

$baseUrl = 'https://github.com/login/oauth/access_token';
$params = array(
    'client_id' => $clientId,
    'client_secret' => $clientSecret,
    'code' => $code,
    'redirect_uri' => $redirectUri
);
$tokenUrl = $baseUrl . '?' . http_build_query($params);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $tokenUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

$accessToken = json_decode($response, true)['access_token'];

Akhir sekali, kami menggunakan token akses yang diperolehi untuk mendapatkan pengguna daripada Maklumat Github:

$baseUrl = 'https://api.github.com/user';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $baseUrl);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: token ' . $accessToken));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

$userData = json_decode($response, true);

// 输出用户信息
echo 'Github用户名:' . $userData['login'];
echo 'Github用户ID:' . $userData['id'];

Dengan langkah di atas, kami telah melaksanakan proses penyepaduan log masuk Github menggunakan PHP dan OAuth. Dalam aplikasi praktikal, kami boleh menyimpan maklumat pengguna yang diperoleh ke pangkalan data dan melengkapkan pemprosesan logik pendaftaran pengguna atau log masuk.

Ringkasnya, penyepaduan log masuk Github menggunakan PHP dan OAuth tidak rumit. Melalui mekanisme pengesahan OAuth2.0 yang disediakan oleh Github, kami boleh memberikan pengguna pengalaman log masuk yang pantas dan selamat. Saya harap artikel ini dapat membantu anda memahami dan melaksanakan penyepaduan log masuk Github.

Atas ialah kandungan terperinci Bagaimana untuk melakukan penyepaduan log masuk Github menggunakan PHP dan OAuth. 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