前言
A系统跳转若依系统,由于在A系统已实现登录,所以跳转到这边无需再来一次登录
一、实现思路
1)在A系统配置一个新的菜单(指向一个没有任何样式的前端页面a.html/a.js),作用:在A系统点击此菜单执行封装跳转; 2)在a.js中进行封装需要跳转需要的参数信息(若依系统的token-调用接口拿取, 用户名、密码-A系统配置),然后执行跳转;
3)若依系统配置A系统拿取token请求白名单,校验用户名密码合法性,获取token返回A系统;
4)若依系统配置A系统免密登录请求白名单,校验用户名密码合法性,A系统token的合法性,若依系统token合法性,执行免密登录操作;
二、使用步骤
1.第三方系统侧改造
1)创建空的a.html页面,内容如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=8;IE=9;IE=10;IE=11;IE=EDGE" />
<title>A系统</title>
<script type="text/javascript" src="../../libs/js/head.js"></script>
<script type="text/javascript" src="../js/third-system-info.js"></script>
</head>
<body>
</body>
</html>
2)创建对应的a.js页面,内容如下:
let param = {};
function initComplete() {
#localService指的是当前服务后端,即上下文
holly.post(localService + "/thirdsystem/self/getThirdData", param, function (e) {
let data = e.RSP.DATA;
if (e.MSG === "SUCCESS" && e.STATUS === "0000" && e.RSP.RSP_CODE === "0000" && data !== "") {
let token = data.token;
let url = data.selfUrl;
let encryptWord = data.encryptWord;
if (token && token.code == '200') {
token = data.token.token;
url += "token=" + token + "&aToken=" + data.aToken + "&encryptWord=" + encryptWord;
window.open(url);
}else{