sso.vue 文件
<template>
<div></div>
</template>
<script>
import util from '../../utils/util.js';
export default {
computed: {
code () {
return this.$route.query.code;
},
},
methods: {
setRole (roles) {
const isLeader = roles.some((item) => {
return item.roleName === 'leader';
});
const isBusinessDepartment = roles.some((item) => {
return item.roleName === 'business-department';
});
const isDataAdmin = roles.some((item) => {
return item.roleName === 'data-admin';
});
const isSysAdmin = roles.some((item) => {
return item.roleName === 'sys-admin';
});
let roleName = 'common'; // 一般角色
if (isLeader) {
// 领导
roleName = 'leader';
}
if (isBusinessDepartment) {
// 业务部门
roleName = 'business-department';
}
if (isDataAdmin) {
// 数据管理员
roleName = 'data-admin';
}
if (isSysAdmin) {
// 系统管理员
roleName = 'sys-admin';
}
util.setCookie('roleName', roleName);
return roleName;
},
},
created () {
if (!this.code) {
const url = this.$api.sso_login_url();
this.$get(url, {}, { isLoading: true }).then((res) => {
if (res.code === 1000) {
const origin = window.document.location.origin;
console.log({ resdata: res.data });
const herfUrl = `${res.data}&redirect_uri=${origin}/stc/sso`;
location.href = herfUrl;
}
});
} else {
const url = this.$api.sso_login_confirm(this.code);
this.$get(url, {}, { isLoading: true }).then((res) => {
const { code, data } = res;
if (code === 1000) {
let { menus, roles, token, entityId, userName } = data;
let isAdmin = roles.some((item) => {
return item.isAdmin === '1';
});
isAdmin = isAdmin ? '1' : '0';
menus = menus.map((item) => {
return item.menuName;
});
util.setCookie('menus', JSON.stringify(menus));
util.setCookie('isAdmin', isAdmin);
util.setCookie('token', token);
util.setCookie('userName', userName);
util.setCookie('ssoEntityId', entityId);
this.$message({
showClose: true,
type: 'success',
message: '登录成功',
});
// 根据不同的角色跳转不同页面
// const roleName = this.setRole(roles);
// const routerName = util.homeForDiffRole(roleName, isAdmin);
// console.log({ routerName });
// this.$router.push({
// name: 'routerName',
// });
this.$router.push({
name: 'query',
});
}
});
}
},
};
</script>
util.js 文件
import Cookies from 'js-cookie';
const util = {};
util.setCookie = function (name, value) {
Cookies.set(name, value, { expires: 0.5, sameSite: 'lax', path: process.env.BASE_URL });
};
export default util