Bagaimana untuk melakukan penyepaduan log masuk Github menggunakan PHP dan OAuth

王林
Lepaskan: 2023-07-28 16:04:01
asal
919 orang telah melayarinya

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';
Salin selepas log masuk

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

$clientId = 'YOUR_CLIENT_ID';
$clientSecret = 'YOUR_CLIENT_SECRET';
$redirectUri = 'YOUR_REDIRECT_URL';
Salin selepas log masuk

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>';
Salin selepas log masuk

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'];
Salin selepas log masuk

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'];
Salin selepas log masuk

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'];
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan