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