Rumah >pembangunan bahagian belakang >tutorial php >Gunakan PHP untuk membangunkan log masuk berbilang vendor pengguna dan fungsi kebenaran pihak ketiga dalam tapak web soal jawab pengetahuan.

Gunakan PHP untuk membangunkan log masuk berbilang vendor pengguna dan fungsi kebenaran pihak ketiga dalam tapak web soal jawab pengetahuan.

王林
王林asal
2023-07-01 20:10:431289semak imbas

Gunakan PHP untuk membangunkan log masuk berbilang vendor pengguna dan fungsi kebenaran pihak ketiga dalam tapak web soal jawab pengetahuan

Dalam aplikasi Internet moden, log masuk berbilang vendor pengguna dan fungsi kebenaran pihak ketiga telah menjadi sangat biasa. Melalui fungsi ini, pengguna boleh menggunakan akaun sedia ada mereka pada platform lain untuk log masuk ke laman web atau aplikasi baharu, dengan itu menghapuskan keperluan untuk mendaftar akaun dan kata laluan baharu, meningkatkan kemudahan pengguna.

Dalam artikel ini, kami akan menggunakan PHP untuk membangunkan tapak web soal jawab pengetahuan dan menambah log masuk berbilang vendor pengguna dan fungsi kebenaran pihak ketiga padanya.

1. Persediaan

Pertama, kita perlu menyediakan projek PHP kosong, yang boleh dilaksanakan menggunakan rangka kerja berasaskan PHP seperti Laravel. Seterusnya, kami perlu mendaftarkan akaun pembangun pada setiap platform untuk mendapatkan kunci dan bukti kelayakan pembangun yang sepadan.

Sebagai contoh, kami akan menggunakan GitHub, Google dan Weibo sebagai platform contoh. Kami perlu mendaftarkan aplikasi pada halaman Pembangun GitHub, Konsol Pembangun Google dan Platform Terbuka Weibo masing-masing dan mendapatkan ID Pelanggan dan Rahsia Pelanggan yang sepadan.

2. Fungsi log masuk berbilang vendor pengguna

Pertama, kita perlu menambah butang log masuk berbilang vendor pada halaman pendaftaran pengguna supaya pengguna boleh memilih untuk log masuk dengan akaun platform lain. Selepas mengklik butang yang sepadan, pengguna akan dialihkan ke halaman kebenaran platform.

Mengambil log masuk GitHub sebagai contoh, kami boleh menambah butang log masuk GitHub pada halaman pendaftaran dan menentukan alamat pautan untuknya, seperti 'https://github.com/login/oauth/authorize?client_id=0a70561f3c575e6c84e56e9c812f7c6c'.

Apabila pengguna mengklik butang ini, dia akan diubah hala ke halaman log masuk GitHub dan mendapatkan kebenaran pengguna semasa proses pengesahan. Setelah pengguna diberi kuasa dengan jayanya, GitHub akan mengubah hala semula ke alamat panggilan balik yang kami berikan, di mana kami boleh mengendalikan logik log masuk pengguna.

Seterusnya, kita boleh menulis fungsi pengendali panggil balik untuk mendapatkan kod kebenaran yang dikembalikan daripada GitHub, dan meminta antara muka untuk mendapatkan token akses melalui kod kebenaran ini. Contohnya:

function githubAuthCallback() {
  $code = $_GET['code'];
  $tokenUrl = 'https://github.com/login/oauth/access_token';

  // 请求接口获取访问令牌
  $data = [
    'client_id' => '<your_client_id>',
    'client_secret' => '<your_client_secret>',
    'code' => $code,
    'redirect_uri' => '<your_redirect_uri>'
  ];

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

  // 处理访问令牌
  $accessToken = parseStr($response)['access_token'];
  
  // 根据访问令牌获取用户信息并进行登录逻辑处理
  // ...
}

Begitu juga, kami juga boleh melaksanakan fungsi log masuk Google dan Weibo. Proses log masuk Google adalah serupa dengan GitHub, yang memerlukan pengguna memproses kod kebenaran dalam alamat panggil balik yang kami sediakan untuk mendapatkan token akses dan mendapatkan maklumat pengguna berdasarkan token akses. Proses log masuk Weibo berbeza sedikit Kami perlu meminta antara muka token akses berdasarkan kod kebenaran yang dikembalikan, gunakan token akses untuk mendapatkan UID pengguna, dan kemudian mendapatkan maklumat pengguna berdasarkan UID pengguna.

3. Fungsi kebenaran pihak ketiga

Selain fungsi log masuk berbilang vendor untuk pengguna, kami juga boleh menambah fungsi kebenaran pihak ketiga ke tapak web kami. Ciri ini membolehkan pengguna membenarkan pemautan laman web atau aplikasi kami dengan platform lain untuk mengakses dan menggunakan data dan fungsi pengguna yang disediakan oleh platform tersebut di tapak web kami.

Sebagai contoh, kami boleh menyediakan pengguna dengan butang "Kebenaran" Apabila pengguna mengklik butang ini, mereka akan diubah hala ke halaman kebenaran platform yang sepadan. Selepas pengguna membenarkan tapak web kami untuk mengakses data mereka pada halaman kebenaran, kami akan mengendalikan logik kebenaran dalam halaman panggil balik kebenaran.

Sebagai contoh, kami boleh menulis fungsi pemprosesan panggil balik untuk kebenaran Weibo untuk mendapatkan kod kebenaran pengguna dan meminta antara muka untuk mendapatkan token akses berdasarkan kod kebenaran. Selepas mendapatkan token, kami boleh mendapatkan maklumat pengguna berdasarkan token dan mengaitkan maklumat pengguna dengan pengguna laman web kami. Contohnya:

function weiboAuthCallback() {
  $code = $_GET['code'];
  $tokenUrl = 'https://api.weibo.com/oauth2/access_token';

  // 请求接口获取访问令牌
  $data = [
    'client_id' => '<your_client_id>',
    'client_secret' => '<your_client_secret>',
    'code' => $code,
    'redirect_uri' => '<your_redirect_uri>'
  ];

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

  // 处理访问令牌
  $accessToken = parseStr($response)['access_token'];

  // 根据访问令牌获取用户信息
  $userInfoUrl = "https://api.weibo.com/2/users/show.json?access_token=$accessToken";
  $userInfo = json_decode(file_get_contents($userInfoUrl), true);

  // 将用户信息与我们的网站用户进行关联
  // ...
}

Begitu juga, kami boleh melaksanakan fungsi keizinan pihak ketiga untuk platform lain, seperti GitHub dan Google.

4. Ringkasan

Melalui langkah di atas, kami boleh menggunakan PHP untuk membangunkan log masuk berbilang vendor pengguna dan fungsi kebenaran pihak ketiga dalam laman web soalan dan jawapan pengetahuan. Fungsi ini bukan sahaja meningkatkan keselesaan pengguna, tetapi juga meningkatkan integrasi laman web dengan platform lain dan meningkatkan pengalaman pengguna.

Sudah tentu, perkara di atas hanyalah contoh kod, sila bangunkan sewajarnya mengikut keperluan sebenar dan dokumentasi API platform. Pada masa yang sama, dalam penggunaan sebenar, kami juga perlu memberi perhatian kepada privasi pengguna dan isu keselamatan data, dan mengikut spesifikasi pembangunan dan dasar setiap platform.

Atas ialah kandungan terperinci Gunakan PHP untuk membangunkan log masuk berbilang vendor pengguna dan fungsi kebenaran pihak ketiga dalam tapak web soal jawab pengetahuan.. 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