java和Discuz论坛实现单点登录,通过Ucenter(用户管理中心)

果学网-专注IT在线www.prismcollege.com

1,按照下面各大链接的教程,把Base64,Client,PHPFunctions,UC,XMLHelper加入web程序。
2,修改web.xml,加入

同步UC Server发出的操作指令
UC
com.eee.wq.UC
2


UC
/api/uc.php
 
3,在UCCENTER中,应用管理->添加新应用
在后台UCCENTER添加应用,设置同步
应用的主 URL:  (你的java web程序的主目录 例如  http://localhost:8080/demo)
应用接口文件名称默认这个uc.php,前面不要加上api。它会自动加上
其他选择是,其他默认
4,
在站点-> UC设置中  设置  自动激活 (必须)
在站点->UC 设置中UCenter 访问地址: http://168.44.33.11/uc_server    (你的php uccenter论坛的地址)
5,
src/main/resources/uccenter.properties 如下
UC_API = php discuzz 论坛uccenter的URL地址   http://168.44.33.11/uc_server
UC_IP = php discuzz 论坛uccenter的IP地址
UC_KEY = 123456abc
UC_APPID = 2
UC_CONNECT = 
价值重点文章(网站和discuz同步)

1,java和Discuz论坛实现单点登录,通过Ucenter(用户管理中心)
http://www.tuicool.com/articles/raYFVjV
2,网站整合Discuz!NT论坛,网站用户和论坛用户统一并同步,详解
http://www.bubuko.com/infodetail-400950.html
3,discuz x2.5论坛和其他系统整合反向数据同步问题
http://my.oschina.net/duwaiweb/blog/82953
4,ucenter整理tipask问答系统与discuz单项同步问题解决方法
http://www.111cn.net/phper/php/66908.htm

5,关于网站用户接入,单点登录,discuz,ucenter
http://forsecond.iteye.com/blog/895086
6,完美整合phpcms v9和discuz X3.1实现同步登陆退出论坛免激活
http://www.jb51.net/cms/109712.html
7,ecshop整合Discuz6.1后怎样可以不激活直接让用户登录?
http://zhidao.baidu.com/link?url=um_y3ppPfcklEG5Mo70jdaKfJUWzyh4EDNHU0WBqzdrzx1Ftmx7iWumKJMg8_4hU1wZDJgPRdkR8hEQyylDxgK
8,ucenter在Java中实现单点登录问题
http://www.discuz.net/thread-3553733-1-1.html
9,Java项目实现与Discuz和Ucenter同步登录
http://www.weste.net/2013/4-3/90163.html
10,36用ucenter实现discuz与javaweb单点应用
http://3y.uu456.com/bp-scssb3b07c1cfad618sfa706-1.html
11,java整合discuz小结(实现与论坛同步登录等操作)
http://blog.csdn.net/white__cat/article/details/38332449
12,UCenter与Java语言的整合经验
http://www.shangxueba.com/jingyan/89131.html
13,Discuz Ucenter与JAVA项目间单点登录的实现方法
http://sell.moe/discuz-ucenter%E4%B8%8Ejava%E9%A1%B9%E7%9B%AE%E9%97%B4%E5%8D%95%E7%82%B9%E7%99%BB%E5%BD%95%E7%9A%84%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%B3%95.html

注意事项:

错误1:
getTextContent xml报错
解决方法:http://www.educity.cn/wenda/364192.html
2,
如果用户在论坛或其他应用注册,新用户第一次登陆 UCenter Home 或其他应用时,需要手动登陆一次,以后可以同步登陆。
对于编码为 utf8 的用户,注意检查自己的 config 文件有没有修改过编码,默认的编码是 ansi 编码,而不是 utf8 编码。
如果修改过 config 文件有 utf8 编码,则会出现 UCenter 通信不成功导致的无法登录情况。
3,
Discuz登录同步java网站web网站登录,中文乱码问题
http://www.tuicool.com/articles/raYFVjV
传进来的$code是需要uc_authcode()方法进行解密的,当中文的时候解密出来的$code是"".解决方法如下:在Client.java的uc_authcode()方法里找到这句
String $result = $result1.substring(0, $result1.length());并把它改成:
String $result= $result1.toString();
try{
$result=new String($result.getBytes("iso-8859-1"),"GBK");
}catch (Exception e) {
$result = $result1.substring(0, $result1.length());
// TODO: handle exception
}
这样还不行,解密出来的code中文部分仍是乱码。所以在uc.java的$code = new Client().uc_authcode($code, "DECODE");这句下面还要加上$code = new String($code.getBytes("GBK"),"UTF-8");
可能有人会说直接转成utf-8不行吗?为什么要先转成gbk呢?如果直接转成utf-8的话,解密出来的$code是""。到此中文的问题就得到解决了。笔者下载的是GBK版本的discuz,
其他情况自己改一下编码应该没问题。
4,输错密码导致很多用户无法登陆,登陆15分钟。
原来是内网ip段相同的原因
5,
UC_CONNECT = //默认为Post类型,可以填mysql。这样需要自己实现代码。
6,
取消邮箱必须注册 选项
首先在后台--全局--注册与访问--注册-"取消注册邮箱必填"选择是提交
必须是DISCUZ!X3.1新版本才有
http://zhidao.baidu.com/link?url=j_Iq9b80TdDJE64RLeATm9W7amSVC3LbJIXIX6K0ICboXxPg_7PtUiyClv4qa1GG2KWPd86kX_Fb8CkntyHtg8NsWrYfR-VKZ9rQirs1_uO

下面为意见参考:

09年意见:
1,让所有使用discuz的用户重新注册

2,研究discuz的表结构,将你网站已经注册的用户信息导入(也就是把你网站的用户表内容导入discuz的用户表);
另外,这个过程最好用程序来做,这样, 将来可以做个触发器或者定时任务来自动完成。实时的更新discuz的用户表数据
定时同步。可以放在每天半夜进行。时效性差点,但最省心。
触发器。绝对实时。

3,如果是Mysql5以上,可以用view。让Discuz通过view访问你网站现存的用户表
倒是不错 ,不过他们在不同的数据库 ,会不会很麻烦

4,重新开发一个管理用户的Web服务,让Discuz用户的认证等处理都通过API进行。  Discuz的表结构文档可以从官方下载。
这都要修改Discuz源码了 ,不好吧

5,在你现有的网站用户管理数据的基础上,做一个用户认证、登陆以及用户信息更新的API(WEB服务),
把Discuz有关于用户认证、登陆以及用户信息更新的处理,所有的数据操作成重写,
使其成为访问你API的DAO。
但是,这只是我的一个构想,具体能否这么改,需要考察一下Discuz数据层与逻辑处理层的分离状况(Discuz的设计很难说)

6,Discuz中有个通行证系统的,参考网上的Discuz通行证样例,将原有的JSP登陆注册部分按照通行证标准重新修改,然后在Discuz后台设置通行证

13年意见:

7,我调用了Ucenter的接口API,发现只能创建UCenter下的用户,而不能用于Discuz.
到DZ登录一下,同时设置免激活
用户,后台,站长,UC设置

8,Discuz!x2.5 用户中心ucenter添加用户与论坛用户同步激活设置方法
http://www.cnit618.com/html/kyxt/discuz/2497.htm

9,java和Discuz论坛实现单点登录,通过Ucenter(用户管理中心)
http://www.tuicool.com/articles/raYFVjV

10,根据这些cookie就可以在网站页面中实现论坛登录后同步到网站了
http://www.bubuko.com/infodetail-400950.html

11,注册
java网站的注册
boolean falg = tempUserService.insert(tempUserVO);
//同步论坛的注册
String $returns = uc.uc_user_register(tempUserVO.getUsername(), tempUserVO.getPass(), tempUserVO.getEamil());
java网站web 网站登录,同步Discuz论坛登录
登录民信web网站 > 调用Client里面的UC登录接口获取用户信息 > 接受返回的用户XML信息并解析 > 调用Client登录DIscuz论坛的登录接口 
> 接受返回过来的js代码 > 输出到java网站web网站 > 跳转到论坛地址(此时已经你会发现用户已经登录)

java网站退出,论坛同步退出
java网站网站注销 > 调用Client里面的uc_user_synlogout同时注销论坛用户

12,论坛登录同步登录java网站web

13,中文名登陆不了的,请将URLEncode.encode(str) 为 URLEncode.encode(str,"GBK")








你可能感兴趣的:(项目管理)