Dengan perkembangan Internet, semakin banyak tapak web mula menyokong fungsi log masuk pihak ketiga. Melalui log masuk pihak ketiga, pengguna boleh menggunakan akaun sosial sedia ada mereka (seperti WeChat, QQ, Weibo, dll.) sebagai bukti kelayakan log masuk, mengelakkan masalah pendaftaran berulang dan mengingati pelbagai kata laluan akaun, yang meningkatkan pengalaman pengguna dengan ketara. Artikel ini menerangkan cara menggunakan PHP untuk melaksanakan fungsi log masuk pihak ketiga, mengambil log masuk WeChat sebagai contoh.
Langkah pertama: Dapatkan akaun platform terbuka WeChat
Untuk log masuk dengan WeChat, anda perlu mempunyai akaun platform terbuka WeChat terlebih dahulu. Selepas mendaftar akaun pada platform terbuka WeChat, anda perlu membuat aplikasi baharu dan mengisi maklumat asas aplikasi dalam "Konfigurasi Asas Pembangunan", termasuk ID aplikasi, kunci aplikasi, dsb.
Selepas membuat aplikasi, anda perlu melakukan pengesahan akaun rasmi WeChat atau pengesahan log masuk WeChat. Artikel ini hanya menerangkan pengesahan log masuk WeChat Selepas pengesahan, aplikasi anda akan diberi kuasa untuk mendapatkan maklumat asas pengguna WeChat, termasuk avatar, nama panggilan, dsb.
Langkah 2: Buat pautan log masuk
Selepas mendapatkan ID aplikasi dan kunci aplikasi, anda boleh mencipta pautan log masuk WeChat untuk pengguna. Selepas pengguna mengklik pautan ini, ia akan melompat ke halaman kebenaran halaman web WeChat Selepas pengguna mengesahkan kebenaran, ia secara automatik akan melompat kembali ke alamat URL yang kami tetapkan dan mengembalikan kod kebenaran.
Berikut ialah kod PHP untuk membuat pautan log masuk:
$login_url = ‘https://open.weixin.qq.com/connect/oauth2/authorize?appid=’ . $appid . ‘&redirect_uri=’ . urlencode($redirect_uri) . ‘&response_type=code&scope=snsapi_login&state=STATE#wechat_redirect’;
Antaranya, $appid ialah ID aplikasi dan $redirect_uri ialah alamat URL untuk dilompat. Perlu diingat bahawa $redirect_uri tidak boleh membawa sebarang parameter dan hanya boleh dilepaskan dengan urlencode dan kemudian disambungkan ke dalam URL, jika tidak, kod kebenaran tidak akan diterima dengan betul.
Langkah 3: Dapatkan access_token
Access_token dan openid boleh diperolehi melalui kod yang dikembalikan dalam langkah 2. Access_token ialah pengecam unik yang digunakan oleh WeChat untuk mengenal pasti pengguna dan boleh digunakan untuk mendapatkan maklumat pengguna peringkat lebih tinggi. Kod PHP khusus untuk mendapatkan access_token adalah seperti berikut:
$token_url = ‘https://api.weixin.qq.com/sns/oauth2/access_token?appid=’ . $appid . ‘&secret=’ . $secret . ‘&code=’ . $code . ‘&grant_type=authorization_code’; $resp = file_get_contents($token_url); $resp_arr = json_decode($resp, true); $access_token = $resp_arr[‘access_token’];
Antaranya, $secret ialah kunci aplikasi dan $code ialah kod kebenaran. Fungsi file_get_contents digunakan di sini untuk menghantar permintaan HTTP, menghuraikan rentetan JSON yang dikembalikan ke dalam tatasusunan dan mendapatkan access_token.
Langkah 4: Dapatkan maklumat pengguna
Selepas mendapatkan access_token, anda boleh menggunakan access_token ini untuk mendapatkan maklumat terperinci pengguna. Dengan mengakses pautan berikut, anda boleh mendapatkan openid, nama panggilan, avatar dan maklumat lain pengguna.
$userinfo_url = ‘https://api.weixin.qq.com/sns/userinfo?access_token=’ . $access_token . ‘&openid=’ . $openid . ‘&lang=zh_CN’; $userinfo_resp = file_get_contents($userinfo_url); $userinfo = json_decode($userinfo_resp, true); $nickname = $userinfo[‘nickname’];
Pada ketika ini, kami telah melaksanakan fungsi log masuk WeChat melalui PHP. Anda boleh menggunakan kod di atas untuk melaksanakan log masuk pihak ketiga ke tapak rangkaian sosial lain Anda hanya perlu menggantikan antara muka API yang sepadan dan mendapatkan maklumat pengguna yang sepadan.
Perlu diambil perhatian bahawa keselamatan log masuk pihak ketiga perlu dipertimbangkan, dan langkah-langkah untuk mencegah serangan CSRF perlu ditambah semasa proses log masuk untuk mengelakkan dieksploitasi oleh penggodam.
Atas ialah kandungan terperinci PHP melaksanakan fungsi log masuk pihak ketiga. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!