|
@@ -13,7 +13,7 @@ import NProgress from 'nprogress'
|
|
|
import 'nprogress/nprogress.css'
|
|
|
import { getToken } from '@/utils/auth'
|
|
|
import { isHttp } from '@/utils/validate'
|
|
|
-import { checkToken, currentUserInfo } from "@/api/login";
|
|
|
+import { checkToken, currentUserInfo, validateTicket, SsoLogout } from "@/api/login";
|
|
|
|
|
|
|
|
|
NProgress.configure({ showSpinner: false });
|
|
@@ -61,17 +61,50 @@ router.beforeEach((to, from, next) => {
|
|
|
})
|
|
|
.catch((e) => {
|
|
|
console.log('认证登录失败:');
|
|
|
- next(`/login?redirect=/`) // 否则全部重定向到登录页
|
|
|
+ next(SSOExitUrl) // 否则全部重定向到登录页
|
|
|
});
|
|
|
})
|
|
|
.catch((e) => {
|
|
|
console.log('用户信息获取失败');
|
|
|
- next(`/login?redirect=/`) // 否则全部重定向到登录页
|
|
|
+ next(SSOExitUrl) // 否则全部重定向到登录页
|
|
|
});
|
|
|
}).catch(e => {
|
|
|
console.log('Token过期,请重新登录!');
|
|
|
- next(`/login?redirect=/`) // 否则全部重定向到登录页
|
|
|
+ next(SSOExitUrl) // 否则全部重定向到登录页
|
|
|
})
|
|
|
+ } else if (to.query && to.query.ticket) { //TODO wanger 对接基础信息平台
|
|
|
+ // 通过ticket获取登录用户信息
|
|
|
+ validateTicket(to.query.ticket).then(res => {
|
|
|
+ console.log('用户信息获取成功:' + JSON.stringify(res.data));
|
|
|
+ // 获取username
|
|
|
+ let username = res.data.account;
|
|
|
+ // 调用action的登录方法,进行自动认证登录
|
|
|
+ console.log('开始自动认证登录');
|
|
|
+ store.dispatch("LoginNew", username)
|
|
|
+ .then(() => {
|
|
|
+ store.commit("SET_SUPERUSER", username);
|
|
|
+ next("/")
|
|
|
+ })
|
|
|
+ .catch((e) => {
|
|
|
+ console.log('认证登录失败:');
|
|
|
+ next(SSOExitUrl) // 否则全部重定向到登录页
|
|
|
+ });
|
|
|
+ })
|
|
|
+ .catch((e) => {
|
|
|
+ console.log('用户信息获取失败');
|
|
|
+ next(SSOExitUrl) // 否则全部重定向到登录页
|
|
|
+ });
|
|
|
+ } else if (to.query && to.query.logout) { //TODO wanger 对接基础信息平台
|
|
|
+ store.dispatch("LogOut").then(() => {});
|
|
|
+ // 获取Token对应登录用户信息
|
|
|
+ SsoLogout().then(res => {
|
|
|
+ console.log('单点登录退出成功');
|
|
|
+ next(SSOUrl) // 否则全部重定向到登录页
|
|
|
+ })
|
|
|
+ .catch((e) => {
|
|
|
+ console.log('单点登录退出失败');
|
|
|
+ next(SSOExitUrl) // 否则全部重定向到登录页
|
|
|
+ });
|
|
|
} else {
|
|
|
if (getToken()) {
|
|
|
|
|
@@ -120,7 +153,7 @@ router.beforeEach((to, from, next) => {
|
|
|
console.log('Token过期,请重新登录!');
|
|
|
store.commit("SET_SUPERUSER", "");
|
|
|
store.commit("SET_SUPERTOKEN", "");
|
|
|
- next(`/login?redirect=/`) // 否则全部重定向到登录页
|
|
|
+ next(SSOExitUrl) // 否则全部重定向到登录页
|
|
|
return
|
|
|
})
|
|
|
} else {
|
|
@@ -140,7 +173,8 @@ router.beforeEach((to, from, next) => {
|
|
|
// 在免登录白名单,直接进入
|
|
|
next()
|
|
|
} else {
|
|
|
- next(`/login?redirect=${to.path}`) // 否则全部重定向到登录页
|
|
|
+ window.location = JcptSSOExitUrl;
|
|
|
+ // next(`/login?redirect=${to.path}`) // 否则全部重定向到登录页
|
|
|
NProgress.done()
|
|
|
}
|
|
|
}
|