import http from '../api' import qs from "qs"; import Vue from 'vue'; import Vuex from 'vuex'; import { vuexOidcCreateStoreModule } from 'vuex-oidc'; import { GetCommonPms } from "../assets/js/CommonPms.js"; import oidcSettings from "../utils/oidcSettings"; import any from './modules/any'; import bill from './modules/bill'; import more from './modules/more'; import token from './modules/token'; Vue.use(Vuex) const oidc_config = JSON.parse(process.env.VUE_APP_OIDC_CONFIG); async function getToken(access_token, appid) { let pms = { client_id: oidc_config.client_id, client_secret: oidc_config.client_secret, grant_type: "application", scope: "workapps.client openid api.workapps.user api.workapps.org api.workapps.open", app_register_id: appid, token: access_token }; let commonPms = GetCommonPms(); let url = `${oidc_config.authority}/connect/token?${commonPms}`; await http .post(url, qs.stringify(pms)) .then( res => { if (res.status == 200) { const accessToken = res.data.access_token; localStorage.setItem("token", accessToken); } else { console.log('res=', res); } }, err => { console.log("789err=", err); // window.location.href = '/callback.html?err=' + err.response.data.error_description; } ) .catch(err => { console.log("111err=", err); // window.location.href = '/callback.html?err=' + err.response.data.error_description; }); } export default new Vuex.Store({ modules: { bill, token, any, more, oidc: vuexOidcCreateStoreModule(oidcSettings, { isAuthenticatedBy: 'access_token', dispatchEventsOnWindow: true }, { userLoaded: async (user) => { const appid = localStorage.getItem('appid'); console.log('user.access_token=',user.access_token); await getToken(user.access_token, appid); } }) } });