Bagaimana untuk melaksanakan fungsi log masuk WeChat dalam php

PHPz
Lepaskan: 2023-04-24 11:20:13
asal
1601 orang telah melayarinya

Sebagai bahasa pembangunan web yang popular, PHP menyediakan pembangun dengan banyak alat dan perpustakaan yang berkuasa, menjadikannya lebih mudah untuk disepadukan dengan platform lain. Pada masa kini, banyak laman web telah menggunakan fungsi log masuk WeChat, membolehkan pengguna log masuk dengan mudah menggunakan akaun WeChat mereka. Jadi, bagaimana kita melaksanakan fungsi ini dalam PHP? Artikel ini akan memperkenalkan anda kepada beberapa kaedah pelaksanaan.

  1. Dapatkan akaun dan kunci pembangun WeChat

Sebelum kita bermula, kita perlu mendapatkan akaun dan kunci pembangun WeChat. Mula-mula log masuk ke platform awam WeChat, kemudian di bawah tab "Pembangunan", klik butang "Keizinan halaman web untuk mendapatkan maklumat pengguna asas" pada "Kebenaran Antara Muka", dan akhirnya lengkapkan kebenaran mengikut arahan untuk mendapatkan akaun pembangun dan kunci.

  1. Bina pautan log masuk

Setelah kami mempunyai akaun dan kunci pembangun WeChat, kami boleh menggunakan PHP untuk membina pautan log masuk. Apabila membina pautan, kami perlu menggunakan protokol OAuth2.0 yang disediakan oleh WeChat untuk meminta kebenaran pengguna daripada WeChat dan mendapatkan openID pengguna (pengecam unik pengguna dalam akaun rasmi).

Sebagai contoh, berikut ialah pautan contoh:

https://open.weixin.qq.com/connect/oauth2/authorize?
appid=APPID&
redirect_uri=REDIRECT_URI&
response_type=code&
scope=snsapi_userinfo&
state=STATE#wechat_redirect
Salin selepas log masuk

Antaranya, gantikan APPID dan REDIRECT_URI dengan akaun dan URL pembangun WeChat kami.

  1. Dapatkan maklumat pengguna

Selepas mendapatkan kebenaran pengguna melalui langkah 2, kami boleh mendapatkan maklumat pengguna dengan menghubungi API yang disediakan oleh WeChat. Secara khusus, kami boleh menggunakan kod berikut untuk mendapatkan maklumat pengguna daripada pelayan WeChat:

// 获取access_token
$url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appId."&secret=".$appSecret."&code=".$code."&grant_type=authorization_code";
$response = file_get_contents($url);
$result = json_decode($response, true);

// 获取用户信息
$url = "https://api.weixin.qq.com/sns/userinfo?access_token=".$result['access_token']."&openid=".$result['openid']."&lang=zh_CN";
$response = file_get_contents($url);
$userInfo = json_decode($response, true);
Salin selepas log masuk

Dalam kod ini, kami mula-mula mendapatkan akses_token dan openID pengguna. Kemudian, kami memanggil antara muka "info pengguna" yang disediakan oleh WeChat sekali lagi dan lulus parameter access_token dan openID untuk mendapatkan maklumat terperinci pengguna.

  1. Laksanakan log masuk WeChat

Akhir sekali, kami boleh bertanya sama ada pengguna wujud daripada pangkalan data kami berdasarkan maklumat pengguna yang diperolehi. Jika ia pengguna baharu, tambahkannya ke pangkalan data kami dan sediakan sesi pengguna supaya maklumat pengguna boleh disimpan dan log masuk berterusan boleh dicapai semasa lawatan pengguna akan datang.

Berikut ialah contoh pelaksanaan:

if ($userInfo) {
  $query = "SELECT * FROM users WHERE openid = '".$userInfo['openid']."'";
  $result = mysqli_query($conn, $query);

  if (mysqli_num_rows($result) == 0) {
    $query = "INSERT INTO users (openid, nickname, sex, province, city, country, headimgurl, created_at) VALUES ('".$userInfo['openid']."', '".$userInfo['nickname']."', '".$userInfo['sex']."', '".$userInfo['province']."', '".$userInfo['city']."', '".$userInfo['country']."', '".$userInfo['headimgurl']."', NOW())";
    mysqli_query($conn, $query);
  }

  $_SESSION['openid'] = $userInfo['openid'];
  $_SESSION['nickname'] = $userInfo['nickname'];
  $_SESSION['headimgurl'] = $userInfo['headimgurl'];

  // 将用户重定向到您网站的一个页面
  header('Location: /index.php');
}
Salin selepas log masuk

Dalam kod ini, kami mula-mula menggunakan pernyataan pertanyaan untuk mencari sama ada pengguna wujud dalam pangkalan data. Jika ia tidak wujud, tambahkannya ke pangkalan data menggunakan pernyataan sisipan. Akhir sekali, kami menyediakan sesi pengguna supaya maklumat pengguna kekal selepas mereka log masuk dan mengubah hala mereka ke halaman di tapak kami.

Ringkasan

Melalui langkah di atas, kami boleh melaksanakan fungsi log masuk WeChat dalam PHP dengan mudah. Perlu diingat bahawa apabila melaksanakan fungsi ini, pembangun perlu mematuhi sepenuhnya piawaian yang disediakan dalam dokumentasi pembangun WeChat dan memproses maklumat pengguna dengan betul yang diperoleh daripada pelayan WeChat.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi log masuk WeChat dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!