记录一下VUE统一4A门户跳转到另外系统免登录
本系统创建sso页面
<template>
<div class="YY-loading" v-show="isLoading">
...
</div>
</template>
<script>
export default {
name: 'YYLogin',
created: function () {
// 1 在统一平台点击某按钮跳转打开本系统sso页面
// 2 sso页面添加到白名单中(路由守卫中到此页面不跳转别的页面)
// 3 sso页面打开网页(相当于给4A系统下指令让其带着ticket来到本系统调用本系统接口进行校验)
// 4 校验通过后在服务器上打开html文件
window.location.href=`http://**.*.***.***:8888/portalweb/sso.login?appId=portal-ui&sessionId=portal-session-id&service=${process.env.VUE_APP_BASE_SSO}/yusp-uaa/api/check/ticket`
},
destroyed: function () {
},
methods: {
}
};
</script>
<style lang="scss">
</style>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>登录中...</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="renderer" content="webkit" />
<link
rel="shortcut icon"
href="../../../themes/common/images/favicon.ico"
type="image/x-icon"
/>
</head>
<body>
<div id="errorMsgDiv"></div>
</body>
</html>
<script type="text/javascript">
// 4 校验通过后在服务器上打开html文件参数拼接到?后
// 5 获取token
getSearchString();
function getSearchString() {
var str = window.location.search;
str = str.substring(1, str.length);
var arr = str.split("&");
var obj = new Object();
for (var i = 0; i < arr.length; i++) {
var tmp_arr = arr[i].split("=");
obj[tmp_arr[0]] = decodeURIComponent(tmp_arr[1]);
}
obj["buildTime"] = new Date().getTime();
if (!!window.ActiveXObject || "ActiveXObject" in window) {
setTimeout(function() {
urlJump(obj);
}, 900);
} else {
urlJump(obj);
}
}
// 6 获取的token放入sessionStorage中
function urlJump(obj) {
window.sessionStorage.setItem(
"UFP-Authorization",
`03${JSON.stringify(obj)}`
);
// 7 打开本系统首页
window.location = "/#/detail/common/dashboard/PLTFRM";
}
</script>