diff --git a/Doc/自定义上报的后续设计思路/统一认证.txt b/Doc/自定义上报的后续设计思路/统一认证.txt new file mode 100644 index 00000000..17c6b476 --- /dev/null +++ b/Doc/自定义上报的后续设计思路/统一认证.txt @@ -0,0 +1,33 @@ +# 第三方向项目经理提交“登录回调地址”及“第三方平台平台名称”,平台录入成功后返回login_cas_id + +第三方平台平台名称 +长春市教育管理公共服务平台 + +登录回调地址 +http://10.10.21.20:9000/QingLong/loginPerson/casLogin + +login_cas_id: 35e6ebf6a93f11eea5f9be51404f227d +https://space.ccsjy.cn/manage/account/login?login_cas_id=35e6ebf6a93f11eea5f9be51404f227d + +测试账号 +pengpeng1818 +aaAA1243 + +返回:http://10.10.21.20:9000/QingLong/loginPerson/casLogin?platformcode=220000&ticket=b869a5424c5f681141d5d5bf35a4c115 + +再用接口拦截到这个请求后,使用platformcode=220000&ticket=b869a5424c5f681141d5d5bf35a4c115 获取人员信息 + +https://www.jleduyun.cn/open/toRightPage?url=ApiInfoDetails&categoryId=6dfcae17c55c4a1589bf2af0b3624720&apiId=69a55f4c8915419fb4e7a89bdedeaa31 + + +#下面是云校的对接信息 +1. +login_cas_id : c9efe476997a11eeae12b224f978ae47 +https://space.ccsjy.cn/manage/account/login?login_cas_id=c9efe476997a11eeae12b224f978ae47 + +2.平台登录成功后跳转第三方的回调地址,会拼接ticket和platformcode +回调示例: 回调地址?ticket=xxxxxxxx&platformcode=xxxxx + +3.第三方拿到ticket可通过网关调用验证ticket接口获取用户信息 + + diff --git a/src/main/java/com/dsideal/QingLong/LoginPerson/Controller/LoginPersonController.java b/src/main/java/com/dsideal/QingLong/LoginPerson/Controller/LoginPersonController.java index cfe2ce3f..79699d1a 100644 --- a/src/main/java/com/dsideal/QingLong/LoginPerson/Controller/LoginPersonController.java +++ b/src/main/java/com/dsideal/QingLong/LoginPerson/Controller/LoginPersonController.java @@ -481,20 +481,33 @@ public class LoginPersonController extends Controller { /** * 功能:对接天喻统一认证 + * https://space.ccsjy.cn/manage/account/login?login_cas_id=35e6ebf6a93f11eea5f9be51404f227d + * 测试账号 + * pengpeng1818 + * aaAA1243 */ @Before({GET.class}) public void casLogin() throws InterruptedException { - String platformcode = get("platformcode"); String ticket = get("ticket"); //url的相关参数 String url = "https://api.jleduyun.cn/user/openapi/user/verify-ticket-info"; //票据 String accessToken = SyncUtil.getAccessToken(); - Map map = new HashMap<>(); + Map map = new HashMap<>(); map.put("accessToken", accessToken); map.put("ticket", ticket); - //SyncUtil.getJson(url,map); - //String result = SyncUtil.executeWithRetry(getRequest());//尝试10次 - //System.out.println(result); + JSONObject jo = SyncUtil.getJson(url, map, "GET"); + Kv kv = Kv.create(); + if (StrKit.isBlank(jo.getJSONObject("result").getString("user_id"))) { + kv.set("success", false); + kv.set("message", "验证票据失败!"); + renderJson(kv); + return; + } + kv.set("success", true); + kv.set("message", "验证票据成功!"); + kv.set("user_id", jo.getJSONObject("result").getString("user_id")); + kv.set("user_name", jo.getJSONObject("result").getString("name")); + renderJson(kv); } } \ No newline at end of file