Discuz论坛与第三方应用同步登录注册
发布:smiling 来源: PHP粉丝网 添加日期:2014-11-19 09:55:10 浏览: 评论:0
1.Discuz版本
我安装的Discuz是目前比较新的3.2版本。安装完以后UCenter已经安装好了。
2.第三方应用站点
自己开发的简单的web应用平台系统。
3.UCenter添加应用
3.1进入UCenter,http://***:8088/bbs/uc_server,***代表UCenter所在服务器ip地址或者域名,Apache端口默认的是80,由于需要,我把端口改成了8088(修改方法会在别的博文中叙述)。
3.2登录成功以后选择应用管理选项,点击添加应用按钮,自定义安装。
一般只需要填写应用名称、应用的主 URL、通信秘钥,然后选择开启同步登录和接收消息为是
3.4提交保存应用
4.第三方应用的配置
4.1添加配置文件
在主目录下添加配置文件,名称为config.properties,内容如下:
- #uc server url
- UC_API = http://localhost/uc
- #uc ip address
- UC_IP =
- #key通信秘钥
- UC_KEY = 12345
- #appid,UCenter中第三方应用的ID
- UC_APPID = 3
- #connect mode: default value is ""
- UC_CONNECT =
4.2配置web.xml
在web.xml中添加如下代码
Discuz论坛与第三方应用同步登录注册
4.3添加同步登录所需jar包jar包源码下载地址
4.4同步登录代码示例:
- Client e = new Client();
- String result = e.uc_user_login("username", "password");
- LinkedList rs = XMLHelper.uc_unserialize(result);
- if(rs.size()>0){
- int $uid = Integer.parseInt(rs.get(0));
- String $username = rs.get(1);
- String $password = rs.get(2);
- String $email = rs.get(3);
- if($uid > 0) {
- System.out.println("登录成功");
- System.out.println($username);
- System.out.println($password);
- System.out.println($email);
- String $ucsynlogin = e.uc_user_synlogin($uid);
- System.out.println("登录成功"+$ucsynlogin);
- //本地登陆代码 //TODO ... ....
- } else if($uid == -1) {
- System.out.println("用户不存在,或者被删除");
- } else if($uid == -2) {
- System.out.println("密码错");
- } else {
- System.out.println("未定义");
- } //开源软件:phpfensi.com
- }else{
- System.out.println("Login failed"); System.out.println(result);
- }
4.5同步注册代码示例:
- String $returns = uc.uc_user_register(user.getUsername(), "***", user.getEmail());
- int $uid = Integer.parseInt($returns);
- if ($uid <= 0) {
- if ($uid == -1) {
- System.out.print("用户名不合法");
- } else if ($uid == -2) {
- System.out.print("包含要允许注册的词语");
- } else if ($uid == -3) {
- System.out.print("用户名已经存在");
- } else if ($uid == -4) {
- System.out.print("Email 格式有误");
- } else if ($uid == -5) {
- System.out.print("Email 不允许注册");
- } else if ($uid == -6) {
- System.out.print("该 Email 已经被注册");
- } else {
- System.out.print("未定义");
- }
- } else {
- System.out.println("OK:" + $returns);
- }
4.6登出代码示例:
- Client uc = new Client();
- //setcookie('Example_auth', '', -86400);
- //生成同步退出的代码
- String $ucsynlogout = uc.uc_user_synlogout();
- System.out.println("退出成功"+$ucsynlogout);
- if ($ucsynlogout != null) {
- HttpServletResponse res = getResponse();
- System.out.println($ucsynlogout);
- res.reset();
- res.setContentType("text/html");
- res.setCharacterEncoding("utf-8");
- res.getWriter().write("成功登出" + $ucsynlogout);
- return null;
- }
基本上Discuz论坛的同步登录注册和退出的功能就如上所述,有几点需要注意.
1,是在同步登录时返回的结果$ucsynlogin中,是一串包含两个script标签的字符串,需要先执行一下第一个script标签中的src之后才能同步登录成功,否则失败,原因是这段代码是为了向Discuz论坛里写入登录信息,至于以什么样的方式执行需要自己定义,我是直接解析到这段字符串到前台页面执行。
2,是同步注册后的用户并没有直接添加到用户表了,而是需要用新注册的用户登录一下论坛进行一下激活才能使用,可以通过修改UCenter的配置来解决这个问题,用管理员登录论坛进入管理中心选择站长选项,选择UCenter设置是否允许其他应用的会员在站点激活:和是否允许直接激活都选择是,然后提交就行。
3.UCenter提供了域名解析服务,可以添加域名解析,把域名解析成ip地址.
Tags: Discuz论坛 Discuz同步登录
相关文章
- ·解决discuz论坛搬家:“Table 'common_syscache' is read only”问题(2014-04-03)
- ·Discuz论坛防止注册机发布垃圾信息的六种方法(2014-07-22)
- ·discuz论坛修改后台登陆密码,忘记后台登陆密码(2014-07-22)
- ·discuz论坛的初期准备阶段之后,接下来我们需要进行哪些设置(2014-07-22)
- ·搭建一个discuz论坛大致分成哪几个步骤(2014-07-22)
- ·chrome/火狐浏览器 discuz论坛用户ID简易屏蔽方法 让你看不到“(2014-11-19)
- ·Azure架设Discuz论坛笔记(2014-11-19)
- ·discuz论坛“对不起,您安装的不是正版应用,安装程序无法继续(2014-11-20)
- ·解决discuz论坛QQ临时会话点击无效?(2014-12-05)
- ·discuz论坛如何更换域名?(2014-12-05)
- ·取消Discuz论坛强制绑定QQ才能发帖功能(2014-12-06)
- ·Discuz论坛x3.1页面空白问题解决办法(2014-12-06)
- ·Discuz论坛URL静态化规则urlrewrite(2014-12-06)
- ·discuz论坛整合ucenter免激活,同步登录,同步退出解决方案(2015-02-22)
- ·Discuz!版块前言:很好用的论坛系统(2015-09-30)
- ·浅谈:建设discuz论坛细节(非常重要)(2015-09-30)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)