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
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; |