1 Star 0 Fork 1

东艾科技/微信登录

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
login.inc.php 5.40 KB
一键复制 编辑 原始数据 按行查看 历史
湖中沉 提交于 2021-03-11 15:58 . 初始化
<?php
/**
* [Discuz!] (C)2001-2099 Comsenz Inc.
* This is NOT a freeware, use is subject to license terms
*
* $Id: login.inc.php 34989 2014-09-24 07:22:03Z nemohou $
*/
if (!defined('IN_DISCUZ')) {
exit('Access Denied');
}
if(!$_G['wechat']['setting']) {
$_G['wechat']['setting'] = unserialize($_G['setting']['mobilewechat']);
}
if(!$_G['wechat']['setting']['wechat_qrtype']) {
showmessage('undefined_action');
}
if(!$_G['wechat']['setting']['wsq_siteid']) {
showmessage('wechat:wechat_login_closed');
}
require_once DISCUZ_ROOT . './source/plugin/wechat/wsq.class.php';
$ac = !empty($_GET['ac']) ? $_GET['ac'] : 'login';
if($ac == 'login') {
$qrauth = $_G['cookie']['qrauth'] ? authcode(base64_decode($_G['cookie']['qrauth']), 'DECODE', $_G['config']['security']['authkey']) : '';
if($_G['uid'] && !$qrauth) {
$showtip = true;
if(in_array('qqconnect', $_G['setting']['plugins']['available'])) {
$connect = C::t('#qqconnect#common_member_connect')->fetch($_G['uid']);
if($connect['conisregister']) {
$showtip = false;
}
}
if($showtip) {
dsetcookie('qrauth', '', -1);
showmessage('wechat:wechat_member_bind_qrauth_lost');
}
}
$url = wsq::qrconnectUrl($_G['uid'], dreferer());
dheader('location: '.$url);
} elseif($ac == 'callback') {
if(!wsq::checksign($_GET) || $_G['uid'] && $_GET['siteuid'] != $_G['uid']) {
showmessage('wechat:wechat_member_auth_fail');
}
require_once libfile('function/member');
if($_GET['siteuid'] && ($member = getuserbyuid($_GET['siteuid'], 1))) {
setloginstatus($member, 1296000);
if(!C::t('#wechat#common_member_wechatmp')->fetch($member['uid'])) {
C::t('#wechat#common_member_wechatmp')->insert(array('uid' => $_G['uid'], 'openid' => $_GET['openid'], 'status' => $_G['cookie']['qrauth'] ? 1: 0), false, true);
}
dheader('location: '.($_GET['referer'] ? $_GET['referer'] : $_G['siteurl']));
} else {
require_once DISCUZ_ROOT . './source/plugin/wechat/wechat.class.php';
require_once DISCUZ_ROOT . './source/plugin/wechat/wechat.lib.class.php';
$defaultusername = WeChatEmoji::clear($_GET['nickname']);
if(!$_G['wechat']['setting']['wechat_allowfastregister']) {
redirectregister($defaultusername);
}
loaducenter();
$user = uc_get_user($defaultusername);
if(!empty($user)) {
$defaultusername = cutstr($defaultusername, 7, '').'_'.random(5);
}
$uid = WeChat::register($defaultusername, 1, 8);
if(!$uid) {
redirectregister($defaultusername);
}
C::t('#wechat#common_member_wechatmp')->insert(array('uid' => $uid, 'openid' => $_GET['openid'], 'status' => 0), false, true);
$url = wsq::userregisterUrl($uid, $_GET['openid'], $_GET['openidsign'], $_GET['referer']);
dheader('location: '.$url);
}
} elseif($ac == 'regcallback' && $_G['uid']) {
list($openid, $openidsign, $qrreferer) = explode("\t", authcode(base64_decode($_GET['auth']), 'DECODE'));
if(!$openid) {
showmessage('wechat:wechat_member_auth_fail');
}
C::t('#wechat#common_member_wechatmp')->insert(array('uid' => $_G['uid'], 'openid' => $openid, 'status' => 1), false, true);
$url = wsq::userregisterUrl($_G['uid'], $openid, $openidsign, $qrreferer);
dheader('location: '.$url);
} elseif($ac == 'regverify' && $_G['uid']) {
if(!wsq::checksign($_GET)) {
showmessage('wechat:wechat_member_auth_fail');
}
if($_GET['code']) {
showmessage('wechat:wechat_member_register_faild');
}
$member = C::t('#wechat#common_member_wechatmp')->fetch($_G['uid']);
if(!$member) {
showmessage('wechat:wechat_member_register_faild');
}
$groupid = $_G['wechat']['setting']['wechat_newusergroupid'] ? $_G['wechat']['setting']['wechat_newusergroupid'] : $_G['setting']['newusergroupid'];
C::t('common_member')->update($_G['uid'], array('groupid' => $groupid));
dheader('location: '.($_G['referer'] ? $_GET['referer'] : $_G['siteurl']));
} elseif($ac == 'wxlogin') {
unset($_GET['mapifrom'], $_GET['charset']);
if(wsq::checksign($_GET)) {
$member = getuserbyuid($_GET['siteuid'], 1);
if($member) {
require_once libfile('function/member');
setloginstatus($member, 1296000);
}
}
} elseif($ac == 'wxregverify') {
if(!wsq::checksign($_GET)) {
showmessage('wechat:wechat_member_auth_fail');
}
$member = getuserbyuid($_GET['siteuid'], 1);
if($member) {
require_once libfile('function/member');
setloginstatus($member, 1296000);
}
if($_G['cookie']['wxnewuser']) {
$groupid = $_G['wechat']['setting']['wechat_newusergroupid'] ? $_G['wechat']['setting']['wechat_newusergroupid'] : $_G['setting']['newusergroupid'];
C::t('common_member')->update($_G['uid'], array('groupid' => $groupid));
dsetcookie('wxnewuser', '', -1);
}
dheader('location: '.($_GET['referer'] ? $_GET['referer'] : $_G['siteurl']));
} else {
showmessage('undefined_action');
}
function redirectregister($username) {
global $_G;
$defaultusername = substr($username, 0, 15);
loaducenter();
$user = uc_get_user($defaultusername);
if(!empty($user)) {
$defaultusername = cutstr($defaultusername, 7, '').'_'.random(5);
}
$auth = urlencode(base64_encode(authcode($_GET['openid']."\t".$_GET['openidsign']."\t".$_GET['referer'], 'ENCODE')));
$referer = urlencode($_G['siteurl'].'plugin.php?id=wechat:login&ac=regcallback&auth='.$auth);
dheader('location: '.$_G['siteurl'].'member.php?mod='.$_G['setting']['regname'].'&referer='.$referer.'&defaultusername='.urlencode($defaultusername));
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
PHP
1
https://gitee.com/dakj/wechat.git
git@gitee.com:dakj/wechat.git
dakj
wechat
微信登录
master

搜索帮助

D67c1975 1850385 1daf7b77 1850385