You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
1.8 KiB
77 lines
1.8 KiB
2 years ago
|
import Vue from 'vue'
|
||
|
import { ACCESS_TOKEN } from "@/store/mutation-types"
|
||
|
import store from '@/store'
|
||
|
/**
|
||
|
* 单点登录
|
||
|
*/
|
||
|
const init = (callback) => {
|
||
|
if (process.env.VUE_APP_SSO == 'true') {
|
||
|
console.log("-------单点登录开始-------");
|
||
|
let token = Vue.ls.get(ACCESS_TOKEN);
|
||
|
let st = getUrlParam("ticket");
|
||
|
let sevice = "http://" + window.location.host + "/";
|
||
|
if (token) {
|
||
|
loginSuccess(callback);
|
||
|
} else {
|
||
|
if (st) {
|
||
|
validateSt(st, sevice, callback);
|
||
|
} else {
|
||
|
let serviceUrl = encodeURIComponent(sevice);
|
||
|
window.location.href = window._CONFIG['casPrefixUrl'] + "/login?service=" + serviceUrl;
|
||
|
}
|
||
|
}
|
||
|
console.log("-------单点登录结束-------");
|
||
|
}else{
|
||
|
callback && callback()
|
||
|
}
|
||
|
};
|
||
|
const SSO = {
|
||
|
init: init
|
||
|
};
|
||
|
|
||
|
function getUrlParam(paraName) {
|
||
|
let url = document.location.toString();
|
||
|
let arrObj = url.split("?");
|
||
|
|
||
|
if (arrObj.length > 1) {
|
||
|
let arrPara = arrObj[1].split("&");
|
||
|
let arr;
|
||
|
|
||
|
for (let i = 0; i < arrPara.length; i++) {
|
||
|
arr = arrPara[i].split("=");
|
||
|
|
||
|
if (arr != null && arr[0] == paraName) {
|
||
|
return arr[1];
|
||
|
}
|
||
|
}
|
||
|
return "";
|
||
|
}
|
||
|
else {
|
||
|
return "";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function validateSt(ticket,service,callback){
|
||
|
let params = {
|
||
|
ticket: ticket,
|
||
|
service:service
|
||
|
};
|
||
|
store.dispatch('ValidateLogin',params).then(res => {
|
||
|
//this.departConfirm(res)
|
||
|
if(res.success){
|
||
|
loginSuccess(callback);
|
||
|
}else{
|
||
|
let sevice = "http://"+window.location.host+"/";
|
||
|
let serviceUrl = encodeURIComponent(sevice);
|
||
|
window.location.href = window._CONFIG['casPrefixUrl']+"/login?service="+serviceUrl;
|
||
|
}
|
||
|
}).catch((err) => {
|
||
|
console.log(err);
|
||
|
//that.requestFailed(err);
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function loginSuccess (callback) {
|
||
|
callback();
|
||
|
}
|
||
|
export default SSO;
|