|
1
2
3
4
5
6
7
|
import Vue from 'vue'
import { ACCESS_TOKEN } from "@/store/mutation-types"
import store from '@/store'
/**
* 单点登录
*/
const init = (callback) => {
|
|
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
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;
}
|
|
22
|
}
|
|
23
24
25
|
console.log("-------单点登录结束-------");
}else{
callback && callback()
|
|
26
27
28
29
30
31
32
|
}
};
const SSO = {
init: init
};
function getUrlParam(paraName) {
|
|
33
34
|
let url = document.location.toString();
let arrObj = url.split("?");
|
|
35
36
|
if (arrObj.length > 1) {
|
|
37
38
|
let arrPara = arrObj[1].split("&");
let arr;
|
|
39
|
|
|
40
|
for (let i = 0; i < arrPara.length; i++) {
|
|
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
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{
|
|
64
65
|
let sevice = "http://"+window.location.host+"/";
let serviceUrl = encodeURIComponent(sevice);
|
|
66
67
68
69
70
71
72
73
74
75
76
77
|
window.location.href = window._CONFIG['casPrefixUrl']+"/login?service="+serviceUrl;
}
}).catch((err) => {
console.log(err);
//that.requestFailed(err);
});
}
function loginSuccess (callback) {
callback();
}
export default SSO;
|