现在网站已经成形(基于JAVA开发,部署在Tomcat下,数据库:mysql) ,想基于网站加一个论坛 ,下了一个Discuz ,部署在apache下可以运行了 。以前没用过Discuz ,不知道怎么使网站用户数据和Discuz用户数据保持一致呢 ,因为网站已经成形 ,用户表已经不可能改了 ,Discuz估计也是一样 ,所以他们用同一张用户表似乎不大容易 ..有没这方面经验的大虾呢 ?? 先谢了 。。

解决方案 »

  1.   

    两个办法:让所有使用discuz的用户重新注册;
    第二:研究discuz的表结构,将你网站已经注册的用户信息导入(也就是把你网站的用户表内容导入discuz的用户表);另外,这个过程最好用程序来做,这样, 将来可以做个触发器或者定时任务来自动完成。
      

  2.   

    方法有2:
    1.如果是Mysql5以上,可以用view。让Discuz通过view访问你网站现存的用户表
    2.重新开发一个管理用户的Web服务,让Discuz用户的认证等处理都通过API进行
      

  3.   


    Discuz的表结构文档可以从官方下载。
      

  4.   

    非常感谢 。。第二个办法我也这样想的 ,实时的更新discuz的用户表数据 ,不过我想discuz没有提供更好的方法吗 ??froole兄 能不能再详细点呢 ???
      

  5.   

    这都要修改Discuz源码了 ,不好吧 。。
      

  6.   

    对阿 ,就算用户数据同步了 ,怎么 sso呢 ??
      

  7.   

    1.如果是Mysql5以上,可以用view。让Discuz通过view访问你网站现存的用户表 
    2.重新开发一个管理用户的Web服务,让Discuz用户的认证等处理都通过API进行
      

  8.   

    视图还是不好处理 ,Discuz用户表列几十个 ,难道都要加到原网站用户表去 ??这样的话还不如更新网站用户表时同步更新 Discuz的用户表..
      

  9.   


    用视图同步一两个表是可以实现的,但是,如果新型复杂的用户信息同步就不好弄了。做到哪一步,要看你系统打算如何设计。我的一个构想:
    最理想的解决方法是,在你现有的网站用户管理数据的基础上,做一个用户认证、登陆以及用户信息更新的API(WEB服务),
    把Discuz有关于用户认证、登陆以及用户信息更新的处理,所有的数据操作成重写,
    使其成为访问你API的DAO。但是,这只是我的一个构想,具体能否这么改,需要考察一下Discuz数据层与逻辑处理层的分离状况(Discuz的设计很难说)
      

  10.   

    如果是以共享ID和密码为主的话,很容易做到。
    但是问题在于,现有网站和Discuz密码的加密是否相同。
      

  11.   

    刚发现这个问题 ,Discuz虽也是MD5加密 ,但好像还加了随机数 ,晕阿 ..
      

  12.   

    我觉得Discuz不可能让你这么做,这样他的用户不就可以随便移植到其它网站下了?如果他们这个都不防,还有什么竟争力,再说了,人的产品就是这个,如果使用他产品的用户的用户可以轻易流失,势必造成不信任感,我想除非有一天他们提供API!我也只是个人猜测,具体操作我就不知道了.
      

  13.   

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

  14.   

    最新的Discuz7 和 javaweb 好像不是很好整合 ..怎么SSO ,我的想法是网站和Discuz 设置相同的cookie  .不知怎么样 ..
      

  15.   

    dz 的uctener就是解决这个问题的,可以实现同步登陆,退出
      

  16.   

    在网上倒是看到个利用UCENTER 基于PHP与discuz整合的 。。但那种方法不适合用在java 写的网站中 ..
      

  17.   

    官方没有提供ucenter java的api 只有php版本Java的ucenter  api http://code.google.com/p/discuz-ucenter-api-for-java/
      

  18.   

     我刚完成了 自己网站和discuss7的整合,由需要联系我。25818055
      

  19.   

    呃也许我想的太简单把之前的数据导进Discuz ,然后网站注册的部分加一条sql把需要数据也进Discuz 用户表 不行么?跟原来的表没关系吧?
      

  20.   

    ucenter 中提供了API接口,在你注册时加上这个,就可以了
      

  21.   


    首先说明下,我纯属路过的。如果我的话得罪人 请见凉.1.Discuz6.1以上版本的用户表结构你了解就多余了,直接奔UCENTER才是正道!,否则你会犯重大错误的----例如UC用户数据和论坛的数据不统一(同一个帐户)2.Discuz用户整合是了解UC工作原理为前提的,任何数据库连接方式都是错误的选择(仅是用户数据方面),了解了原理后你就知道WHY了。LS很多人的方法,只考虑Discuz,没考虑UC,UC的同步登陆方式不能简单归属SSO范畴,考虑问题至少要考虑UC整体和挂靠的所有应用系统用户。无论是修改UC的密码还是论坛的密码,UCH的密码是要同步的。因此从Discuz提供的标准来做是一个非常有效的途径。3.网络上有开源的API,不过对于你这种情况的需求,UC可能实现的不完美 -- 先登陆下后,然后才在论坛中有这个帐户(仍需激活),如果在论坛注册用户,可能会造成用户重名的问题.最好的办法是什么?把你的用户数据导入UC,如果密码体系不一样,看看能不能转,转不了的话,用户数据同步都是个麻烦的问题.
      

  22.   

    可以 。还要解决SSO的问题 ..
      

  23.   


    Discuz的整合API确实比较麻烦. 把用户数据导入Discuz UC是 对先前无UC的是个不错的办法,问题只有一个加密,这里不讨论其他情况.这里讨论为什么VIEW方式和直接数据库方式不行的原因.
       Discuz UC 是用户中心的意思  Discuz BBS 和 Discuz UCH是2个拥有用户数据的系统.虽然通过VIEW或其他数据库方式可以把UC的用户密码进行直接操作,考虑到其他系统用户数据的同步,则必须把BBS UCH的密码也同步考虑,这个看起来没有问题,问题是加一个Discuz SS呢? 那不是又要修改程序了????   关于同步登陆问题,Discuz UC的同步登陆并不是一般理解的SSO过程,任何一点登陆,全部同时登陆写COOKIE. VIEW方式和直接数据库方式则无法实现这个效果,必须让所有应用的API/UC.PHP都接受调用产生登陆的COOKIE,而这个过程是UC提供SYSLOGIN()来实现的.至于用户名称,用户密码同步更新都是UC机制,无论是VIEW还是出发器实现都显得笨拙和难扩展.如果不考虑这些,那你的用户名可能重复,密码修改也可能产生问题.
        Discuz UC 的整合不是那么EASY的,如果没有接触过和想自己独立设计的话,不用下栽相关的API,自己独立开发一般需要10天左右,如果绕开UC开发的话,对则论坛API应用的话,就意味着去处UC或改UC,开发时间估计需要1个月以上的时间.
        对PHP了解不多最好不要去修改UC和接口标准.    是从对UC的一点研究,提供上述观点的,在目前的情况下,按UC的接口标准做是最佳的方法,数据库方式不建议考虑,稍不慎就会导致无法挽回的损失.也算一种忠告吧.用别人的系统最有不好的地方,并不是想拿来用就能用的.
      

  24.   

    Discuz的整合API确实比较麻烦. 把用户数据导入Discuz UC是 对先前无UC的是个不错的办法,问题只有一个加密,这里不讨论其他情况. 这里讨论为什么VIEW方式和直接数据库方式不行的原因. 
      Discuz UC 是用户中心的意思  Discuz BBS 和 Discuz UCH是2个拥有用户数据的系统.虽然通过VIEW或其他数据库方式可以把UC的用户密码进行直接操作,考虑到其他系统用户数据的同步,则必须把BBS UCH的密码也同步考虑,这个看起来没有问题,问题是加一个Discuz SS呢? 那不是又要修改程序了????   关于同步登陆问题,Discuz UC的同步登陆并不是一般理解的SSO过程,任何一点登陆,全部同时登陆写COOKIE. VIEW方式和直接数据库方式则无法实现这个效果,必须让所有应用的API/UC.PHP都接受调用产生登陆的COOKIE,而这个过程是UC提供SYSLOGIN()来实现的.至于用户名称,用户密码同步更新都是UC机制,无论是VIEW还是出发器实现都显得笨拙和难扩展.如果不考虑这些,那你的用户名可能重复,密码修改也可能产生问题. 
        Discuz UC 的整合不是那么EASY的,如果没有接触过和想自己独立设计的话,不用下栽相关的API,自己独立开发一般需要10天左右,如果绕开UC开发的话,对则论坛API应用的话,就意味着去处UC或改UC,开发时间估计需要1个月以上的时间. 
        对PHP了解不多最好不要去修改UC和接口标准.     是从对UC的一点研究,提供上述观点的,在目前的情况下,按UC的接口标准做是最佳的方法,数据库方式不建议考虑,稍不慎就会导致无法挽回的损失.也算一种忠告吧.用别人的系统最有不好的地方,并不是想拿来用就能用的.
      

  25.   

    discuz用户同步的确有点麻烦。最好下个数据库文档仔细研究下,然后决定用什么方法!
      

  26.   

    直接把Discuz的用户在线统计那写成js文件,放在Discuz应用的某个目录下,然后在你的网页下<script src="http://xxxx/在线统计.js"></script>
      

  27.   

    非常 感谢楼上各位兄弟的回复  ,问题差不多可以解决了 ,数据同步的问题 ,我是这样做的 ,先把目前网站的用户数据导入到论坛系统 ,
    密码因为MD5加密 ,跟discuz的MD5稍有不同 。 没有办法 ,只能先为空 ,让人家自己改吧(用户数还不多) ,以后注册的会员在注册地方 ,同步discuz用户表的数据 。
    登录同步比较麻烦点 。我采用的40楼兄弟的方法 。官方没有提供ucenter java的api 只有php版本Java的ucenter  api http://code.google.com/p/discuz-ucenter-api-for-java/有类似问题的我以问我 ..
      

  28.   

    创建视图,使用instead of的视图触发器。
      

  29.   

    1 官方弄个ucenter就是方便大家整合, uchome,discuz要整合会员模块,其实就是整合uccenter会员注册时,同时分别往ucenter,和你的程序添加数据, 会员登录也是一样2 要么把你自己的会员表拆了, 直接用ucenter的会员表
      

  30.   

    你定时的话这个时间如何设置好呢?1秒?一分钟?还有,1、在discuz注册的新用户如何处理?2、在网站登陆的用户访问论坛要不要2次登陆?3、在论坛登陆的用户访问网站要不要2次登陆?
      

  31.   

    其实这个不是问题,我已经实现了,改变登陆验证方式就可以!!!
    去这里看看 www.daleofmaple.com
      

  32.   

    我个人认为,这样的应用经常会碰到,假如一家公司本身有自己的网站,注册用户己经达到10万人,自己以前也有论坛的,这个时候,这个网站希望升级论坛,就弄了一个discuz,然后,希望把原来老的论坛里的数据转移到discuz,中,我相信这样的应用很常见,ucenter,确实是官方提供的一个集成工具,但是ucenter开发起来的目的,是为了让基于以它为中心的所有应用能够在登陆,登出,以及短消息提示方面做到同步,并没有其他设计的目的,如uchome,你只要在uchome新注册一个用户,然后到ucenter的数据库里查看一下,改变了哪几个表,存了什么数据,你就明白,应该怎么导入数据了,discuz也一样,你只要把用户中心的数据像它原来的逻辑一样导入数据,这样,你就可以登陆了,因为所有基于ucenter服务的用户登陆和退出(密码判断)都是在ucenter的数据库上判断的....
      

  33.   

    阿萨德发射点发asdfasdfasdfasdfasdf