查看: 157|回复: 12
收起左侧

Java Spring Boot 项目与 Discuz! 论坛同步登录登出

[复制链接]

升级   100%

  • TA的每日心情
    奋斗
    昨天 10:14
  • 签到天数: 64 天

    连续签到: 1 天

    [LV.6]常住居民II

    89

    主题

    166

    帖子

    1308

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    1308
    发表于 2020-12-25 14:54:33 | 显示全部楼层 |阅读模式

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    Java的Spring Boot与PHP的Discuz集成能力已经上传到Maven中央仓库,需要的小伙伴可以去尝试一下。
    相关博文:https://www.renfei.net/posts/1003429
    项目地址:https://github.com/renfei/discuz-ucenter-api-for-java
    Maven依赖:
    1. <dependency>
    2.   <groupId>net.renfei</groupId>
    3.   <artifactId>discuz-ucenter-api-for-java</artifactId>
    4.   <version>1.0.6</version>
    5. </dependency>
    复制代码
    登陆并且同步登陆的案例:
    1. Client client = new Client("http://localhost/uc_server", null, "key", "2","");
    2. // 登陆
    3. String result = client.ucUserLogin(uid);
    4. LinkedList<String> rs = XMLHelper.ucUnserialize(result);
    5. if(rs.size() > 0){
    6.         int uid = Integer.parseInt(rs.get(0));
    7.         String username = rs.get(1);
    8.         String password = rs.get(2);
    9.         String email = rs.get(3);
    10.         if(uid > 0) {
    11.                 //同步登陆
    12.                 String string = client.ucUserSynlogin(uid);
    13.                 //本地登陆代码
    14.                 //TODO ... ....
    15.         } else if(uid == -1) {
    16.                 System.out.println("用户不存在,或者被删除");
    17.         } else if(uid == -2) {
    18.                 System.out.println("密码错");
    19.         } else {
    20.                 System.out.println("未定义");
    21.         }
    22. }else{
    23.         System.out.println("Login failed");
    24.         System.out.println(result);
    25. }
    复制代码


    评分

    参与人数 1金钱 +10 收起 理由
    黑洞先生 + 10 很给力!

    查看全部评分

    升级   36%

    该用户从未签到

    0

    主题

    3

    帖子

    18

    积分

    新手上路

    Rank: 1

    积分
    18
    发表于 2021-1-30 21:14:07 | 显示全部楼层
    老大 你好 可以请你帮忙部署吗
    回复

    使用道具 举报

    升级   100%

  • TA的每日心情
    奋斗
    昨天 10:14
  • 签到天数: 64 天

    连续签到: 1 天

    [LV.6]常住居民II

    89

    主题

    166

    帖子

    1308

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    1308
     楼主| 发表于 2021-1-30 21:37:26 | 显示全部楼层
    nnid 发表于 2021-1-30 21:14
    老大 你好 可以请你帮忙部署吗

    您好,这个只是一个程序工具包,并不是单独部署的程序。需要在您旧程序中集成的,您有什么样的问题,可以发出来,一起讨论学习解决。
    回复

    使用道具 举报

    升级   36%

    该用户从未签到

    0

    主题

    3

    帖子

    18

    积分

    新手上路

    Rank: 1

    积分
    18
    发表于 2021-1-30 21:39:16 | 显示全部楼层
    请问 你什么时候 方便呢
    回复

    使用道具 举报

    升级   100%

  • TA的每日心情
    奋斗
    昨天 10:14
  • 签到天数: 64 天

    连续签到: 1 天

    [LV.6]常住居民II

    89

    主题

    166

    帖子

    1308

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    1308
     楼主| 发表于 2021-1-30 21:41:08 | 显示全部楼层
    nnid 发表于 2021-1-30 21:39
    请问 你什么时候 方便呢

    您可以先把问题描述一下,还是说您不是技术人员,正在找技术人员弄呢
    回复

    使用道具 举报

    升级   36%

    该用户从未签到

    0

    主题

    3

    帖子

    18

    积分

    新手上路

    Rank: 1

    积分
    18
    发表于 2021-1-30 22:02:32 | 显示全部楼层
    <script type="text/javascript" src="http://x.xxx.com/api/uc.php?time=1612015199&code=00eaN%2F%2FALDOEgGRqWjuJk35XtBLFv0i2vA%2BY%2Bl0Ds6x82uA%2BRij4VCfr7NL6edSNeBln85GWlAGJMl1d3Uy8tjt1%2Bq4sp9eYvHxIbFerc7fdXt50Rpw7nVnE8jNXfsoM2xiSlOcEFaLwO13%2BEIkgaFxYA28RtQ%2BVsX0m" reload="1"></script>
    同步登录接口返回的这个链接,在浏览器打开没有response
    回复

    使用道具 举报

    升级   100%

  • TA的每日心情
    奋斗
    昨天 10:14
  • 签到天数: 64 天

    连续签到: 1 天

    [LV.6]常住居民II

    89

    主题

    166

    帖子

    1308

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    1308
     楼主| 发表于 2021-1-30 22:23:00 | 显示全部楼层
    nnid 发表于 2021-1-30 22:02
    同步登录接口返回的这个链接,在浏览器打开没有response

    的确没有返回,因为返回没有什么用,核心是在 response 的 响应头里,set-cookie,放置了一个cookie,这个才是真正有用的地方
    回复

    使用道具 举报

    升级   54%

    该用户从未签到

    0

    主题

    4

    帖子

    27

    积分

    新手上路

    Rank: 1

    积分
    27
    发表于 2021-2-25 18:43:07 | 显示全部楼层
    大佬,我这两行代码报错误:
    String result = client.ucUserLogin("", "");
    LinkedList<String> rs = XMLHelper.ucUnserialize(result);
    控制台打印:
    result-------><!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><html><head><title>302 Found</title></head><body><h1>Found</h1><p>The document has moved <a >here</a>.</p></body></html>
    [Fatal Error] :1:50: 在 publicId 和 systemId 之间需要有空格。
    回复

    使用道具 举报

    升级   54%

    该用户从未签到

    0

    主题

    4

    帖子

    27

    积分

    新手上路

    Rank: 1

    积分
    27
    发表于 2021-2-25 18:46:39 | 显示全部楼层
    这是我那个Client()的配置写错了,还是什么啊
    回复

    使用道具 举报

    升级   100%

  • TA的每日心情
    奋斗
    昨天 10:14
  • 签到天数: 64 天

    连续签到: 1 天

    [LV.6]常住居民II

    89

    主题

    166

    帖子

    1308

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    1308
     楼主| 发表于 2021-2-25 23:03:03 | 显示全部楼层
    opt-m4 发表于 2021-2-25 18:43
    大佬,我这两行代码报错误:
    String result = client.ucUserLogin("", "");
    LinkedList rs = XMLHelper.ucUns ...

    非常可能是 UCenter 的配置、代码里的配置,不一致,你看控制台打印的内容,UCenter 返回的是 302 重定向状态,很可能签名验证没通过,UCenter 进行了重定向。
    建议检查 UCenter 的配置、代码里的配置,如果还不行,就得看 UCenter 的日志,UCenter 那边发生了什么。
    回复

    使用道具 举报

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

    本版积分规则

    Archiver|手机版|Status| FEI软件技术社区 ( 冀ICP备12003293号-9 )

    GMT+8, 2021-3-5 03:40 , Processed in 0.217951 second(s), 36 queries .

    Powered by Discuz!

    Copyright © 2001-2020, Tencent Cloud.

    Copyright © 2021 RENFEI.NET All rights reserved.
    快速回复 返回顶部 返回列表