1. 后台新建一个站点应用

点击新增站点。

- 应用名:站点应用的名称。
- 应用标识: 站点应用的标识,唯一。
- 跳转地址: 站点应用统一登录成功后的跳转地址。

添加成功后,需要将登录地址给学校,让其配置,第三方应用需要通过回调地址来接收登录成功后的数据,在其登录成功后统一登录自动跳转到其配置的回调地址。
2. 第三方系统解密回调返回的数据
登录成功后,统一登录中间件跳转到其配置的回调地址,会带上一个token,然后第三方应用通过/getSSOData/{clientid}, 传其token, 则可以获取到登录的数据,然后根据其AES秘钥进行数据解密则可得到登录的数据。
示例代码:
/**
回调处理demo
**/
@RequestMapping(value = "/ssoRedirect")
@ResponseBody
public Resp ssoRedirect(String token) {
System.out.println("");
System.out.println("统一登录成功,token=" + token);
String getDataUrl = SSO_URL + "/getSSOData/" + APPID; //APPID 用用标识
NutMap body = NutMap.NEW();
body.addv("token", token);
Header header = Header.create();
header.addv("Content-Type", "application/json");
Response resp = Http.post3(getDataUrl, Json.toJson(body), header, 60_000);
NutMap respMap = NutMap.WRAP(resp.getContent());
if(respMap.getInt("code") != 200) {
return Resp.ERROR("SSO登录失败").data(respMap);
}
System.out.println("resp=" + resp.getContent());
String content = AESUtils.decrypt(respMap.getString("data"), KEY); //KEY 应用数据AES加密解密秘钥
System.out.println("数据解密结果: " + content);
NutMap userData = NutMap.WRAP(content);
System.out.println("拿到的登录信息: " + Json.toJson(userData));
return Resp.OK("SSO登录成功").data(userData);
}