用户

 找回密码
 立即注册

搜索


163

主题

273

帖子

1065

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1065

最佳新人

2018-12-23 17:32:55 cmspro 管理员 楼主 184
加强版以完成(并已集成到对应系统中),本插件仅供研究体验学习使用,因涉及新增数据库此插件不会再次更新。
功能描述:
1.使用本插件可以将本系统的账号,同步到discuz的uc中
2.注册同步账号 本系统=>论坛(不支持论坛=>本系统
3.论坛中没有本系统的账号登录时将自动创建
4.双方面修改密码不会同步
5.支持快捷登录
注意:需要同步登录,请在UC中勾选同步登录 ,否则无法同步登录。

拓展开发:
如果有技术能力的可以通过http://bbs.cmspro.cn/forum.php?mod=viewthread&tid=192 这个开发文档进行拓展

注意:本插件如在20181212-20181223的系统中使用,下载附件覆盖即可
其他时间的系统下载附件后不要覆盖app/user中的文件,其他的直接覆盖,然后按照沙发中的教程增加。
QQ截图20181223224338.jpg
更新记录
  1. 20181228
  2. 1.新增调整支持快捷登录
  3. 20181224
  4. 1.放弃快捷登录同步账号信息过去(因为快捷登录非常不便利在用户得知账号密码的情况下同步账号和密码信息)
  5. 2.增加快捷登录同步方式为更新用户名时进行同步
复制代码


使用方法:
1.进入UCenter添加新应用,如下图:建议通讯秘钥使用 这个工具来生成
  1. https://suijimimashengcheng.51240.com/
复制代码
QQ截图20181223224112.jpg

2.编辑刚添加的应用拉到最下面,复制 应用的 UCenter 配置信息 到 \cmspro\lib\uc_client\config.inc.php 中说明中,如下图:
QQ截图20181223173233.jpg











UCenter.zip

66 KB, 下载次数: 10

使用道具 举报 回复

提醒:以下代码仅供参考,多次升级代码改动比较频繁,不以以下代码为准。
注:手动添加没后台开关,仅供临时增加此功能使用。
手动增加相关功能方法如下

同步uc注册账号
1.直接注册
打开\app\user\controllers\register.php找到
[PHP] 纯文本查看 复制代码
exit($cp->go('/user', '注册成功,正在跳转用户中心!', 1));

在上面增加
[PHP] 纯文本查看 复制代码
re('uc');
            uc_user_register($name,$password1, $email);

2.通过快捷注册
2.1 QQ互联登录
打开\app\user\controllers\login.php
找到 (共2处)
[PHP] 纯文本查看 复制代码
$c->clear('qqopen')

在下面增加
[PHP] 纯文本查看 复制代码
re('uc');
                //进行注册
                uc_user_register($uid, $qqopen['openid'], 'qq@null' . $uid);
                //同步登录
                //通过接口判断登录帐号的正确性,返回值为数组
                list($uids, $username, $password, $email) = uc_user_login($uid, $qqopen['openid']);
                setcookie('Example_auth', '', -86400);
                if ($uids > 0) {
                    //用户登陆成功,设置 Cookie,加密直接用 uc_authcode 函数,用户使用自己的函数
                    setcookie('Example_auth', uc_authcode($uids . "\t" . $username, 'ENCODE'));
                    //生成同步登录的代码
                    echo uc_user_synlogin($uids);
                }

打开
\cmspro\lib\qqlogin.lib.php
找到
[PHP] 纯文本查看 复制代码
$set = $obj->set($data, $row['id']);

在下面增加
[PHP] 纯文本查看 复制代码
re('uc');
                //同步登录
                //通过接口判断登录帐号的正确性,返回值为数组
                list($uids, $username, $password, $email) = uc_user_login($row['id'], $user->openid);
                setcookie('Example_auth', '', -86400);
                if ($uids > 0) {
                    //用户登陆成功,设置 Cookie,加密直接用 uc_authcode 函数,用户使用自己的函数
                    setcookie('Example_auth', uc_authcode($uids . "\t" . $username, 'ENCODE'));
                    //生成同步登录的代码
                    echo uc_user_synlogin($uids);
                } elseif ($uid == -1) { //用户不存在
                    //进行注册
                    uc_user_register($row['id'], $user->openid, 'qq@null' . $row['id']);
                }

2.2微信快捷登录
打开\app\user\controllers\login.php
找到
[PHP] 纯文本查看 复制代码
//如果微信端直接登录有账号情况下
                if (is_weixin() && $_SESSION['for'] != '') {
                    $cp->go('/user', '', 1);
                }

在下面增加
[PHP] 纯文本查看 复制代码
re('uc');
                        //登录操作
                        //通过接口判断登录帐号的正确性,返回值为数组
                        list($uids, $username, $password, $email) = uc_user_login($row['uid'], $wxopen['openid']);
                        setcookie('Example_auth', '', -86400);
                        if ($uids > 0) {
                            //用户登陆成功,设置 Cookie,加密直接用 uc_authcode 函数,用户使用自己的函数
                            setcookie('Example_auth', uc_authcode($uids . "\t" . $username, 'ENCODE'));
                            //生成同步登录的代码
                            echo uc_user_synlogin($uids);
                        } elseif ($uids == -1) { //用户不存在
                            //进行注册
                            uc_user_register($row['id'], $wxopen['openid'], 'wx@null' . $row['id']);
                        }

找到
[PHP] 纯文本查看 复制代码
$cp->go('/user', '微信绑定并登录成功!', 1);

在上面增加
[PHP] 纯文本查看 复制代码
re('uc');
                            //登录操作
                            //通过接口判断登录帐号的正确性,返回值为数组
                            list($uids, $username, $password, $email) = uc_user_login($uid, $wxopen['openid']);
                            setcookie('Example_auth', '', -86400);
                            if ($uids > 0) {
                                //用户登陆成功,设置 Cookie,加密直接用 uc_authcode 函数,用户使用自己的函数
                                setcookie('Example_auth', uc_authcode($uids . "\t" . $username, 'ENCODE'));
                                //生成同步登录的代码
                                echo uc_user_synlogin($uids);
                            } elseif ($uids == -1) { //用户不存在
                                //进行注册
                                uc_user_register($row['id'], $wxopen['openid'], 'wx@null' . $row['id']);
                            }

找到
[PHP] 纯文本查看 复制代码
$set = $wx->set($data, $uid);

下面增加
[PHP] 纯文本查看 复制代码
re('uc');
                //登录操作
                //通过接口判断登录帐号的正确性,返回值为数组
                list($uids, $username, $password, $email) = uc_user_login($uid, $wxopen['openid']);
                setcookie('Example_auth', '', -86400);
                if ($uids > 0) {
                    //用户登陆成功,设置 Cookie,加密直接用 uc_authcode 函数,用户使用自己的函数
                    setcookie('Example_auth', uc_authcode($uids . "\t" . $username, 'ENCODE'));
                    //生成同步登录的代码
                    echo uc_user_synlogin($uids);
                }

3.账号登录
找到
[PHP] 纯文本查看 复制代码
$cp->go('/user', '登录成功!', 1);

上面增加
[PHP] 纯文本查看 复制代码
re('uc');
                    //登录操作
                    //通过接口判断登录帐号的正确性,返回值为数组
                    list($uid, $username, $password, $email) = uc_user_login($row['name'], $_POST['password']);
                    setcookie('Example_auth', '', -86400);
                    //登录成功
                    if ($uid > 0) {
                        //用户登陆成功,设置 Cookie,加密直接用 uc_authcode 函数,用户使用自己的函数
                        setcookie('Example_auth', uc_authcode($uid . "\t" . $username, 'ENCODE'));
                        //生成同步登录的代码
                        echo uc_user_synlogin($uids);
                    } elseif ($uid == -1) { //用户不存在
                        //进行注册
                        uc_user_register($row['name'], $_POST['password'], $row['email']);
                    }
使用道具 举报 回复
发新帖

您需要登录后才可以回帖 登录 | 立即注册