iteye_4905 2011-11-03 20:45
浏览 185
已采纳

jsp 与 discuz 的整合

项目准备整合 discuz, 因此下了个 discuz x2. 整合使用的是 http://code.google.com/p/discuz-ucenter-api-for-java/ 这儿的代码,一切都配好了运行 Jsp_demo.jsp 也显示登陆成功。
问题来了:按照我的理解,和 UCenter 登陆通信完后应该可以在响应中输出一个 iframe 或者 script 链到 discuz,里面会发送一个请求到 discuz,discuz 会返还 cookie 的设置,实现跨域登陆,不过这一个 script 该如何构建?
按照 http://www.iteye.com/topic/895086 的例子,应该输出类似
[code="javascript"]

[/code]
的字符串,不过这个字符串该如何构造?

另外如果整合的话 discuz 是否有地方统一配置登陆和注册链接,避免自己去修改 discuz 代码?

  • 写回答

3条回答 默认 最新

  • mcgj 2011-11-05 20:59
    关注

    呵呵。。
    Client e = new Client();
    1、String result = e.uc_user_login(account, password);返回的的确是如下格式xml文件、抱歉!上面说的太抽了。
    <?xml version="1.0" encoding="ISO-8859-1"?><![CDATA[259]]><![CDATA[username]]><![CDATA[username]]><![CDATA[email]]><![CDATA[0]]>

    但这是必须得,;;
    discuz提供了一个Client工具类(里面包含了一些解析工具类)、因为你要将result这串xml文件中的有用数据取出来LinkedList rs = XMLHelper.uc_unserialize(result);并放入一个LinkedList的集合中、类似:[uid, username, username, email, 0]、然后从这个集合中取出用户的id,int uid = Integer.parseInt(rs.get(0));、然后获取同步登陆脚步,就是所谓的js脚步,String synLoginScript = e.uc_user_synlogin(login);

    呵呵,,

    public String synLogin(String account,String password) throws Exception {
        Client e = new Client();
        String result = e.uc_user_login(account, password);//登录
        LinkedList<String> rs = XMLHelper.uc_unserialize(result);//解析xml
        int login = Integer.parseInt(rs.get(0));//取用户id
        if(login==-1 || login==-2){//自定义判断
            return null;
        }
        return e.uc_user_synlogin(login);//取脚步并返回
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)