blob: 37f5da1498cddefaf8bc1a45cac3fe536e4f0e94 [file] [log] [blame]
/*Identity.store.js*/
import identity_management from "@/service/identity_management";
import auth from "@/service/auth";
const state = {
authorizationEndpoint: null,
idToken: localStorage.getItem('id_token') || '',
accessToken: localStorage.getItem('access_token') || '',
refreshToken: localStorage.getItem('refresh_token') || '',
currentUserName: null
}
const actions = {
async fetchAuthorizationEndpoint({commit}, data) {
let resp = await identity_management.getOpenIdConfig(data)
let baseURL = resp.data.authorization_endpoint
this.authorizartionURL = baseURL + "?response_type=code&client_id=" + data.client_id + "&" +
"redirect_uri=" + data.redirect_uri + "&scope=openid&kc_idp_hint=oidc"
commit('SET_AUTH_ENDPOINT', this.authorizartionURL)
},
async authenticateUsingCode({commit}, data) {
let resp = await identity_management.getToken(data)
commit('SET_AUTH_TOKEN', resp.data)
},
async authenticateLocally({commit}, data) {
try {
let resp = await identity_management.localLogin(data)
commit('SET_AUTH_TOKEN', resp.data)
} catch (e) {
return false
}
},
async logout({commit}, data) {
let dat = {
client_id: data.client_id,
client_sec: data.client_sec,
refresh_token: auth.getRefreshToken()
}
await identity_management.logout(dat)
await commit('CLEAR_AUTH_TOKEN', data)
},
// eslint-disable-next-line no-unused-vars
async isAuthenticated({commit}, data) {
try {
let resp = auth.isLoggedIn()
if (!resp) {
if (auth.getRefreshToken() != null && auth.getRefreshToken() != '') {
let dat = {
client_id: data.client_id,
client_sec: data.client_sec,
refresh_token: auth.getRefreshToken()
}
let response = await identity_management.getTokenUsingRefreshToken(dat)
commit('SET_AUTH_TOKEN', response.data)
return auth.isLoggedIn()
}
return false
}
return true
} catch (e) {
commit('CLEAR_AUTH_TOKEN')
return false
}
},
async authenticateTenantAdmin({commit}, data) {
try {
let resp = await identity_management.localLogin(data)
commit('SET_TENANT_CACHED_TOKENS', data)
commit('SET_AUTH_TOKEN', resp.data)
return true
} catch (e) {
return false
}
},
async logoutTenantAdmin({commit}, data) {
let dat = {
client_id: auth.getClientId(),
client_sec: auth.getClientSec(),
refresh_token: auth.getRefreshToken()
}
await identity_management.logout(dat)
await commit('RESET_TENANT_CACHED_TOKENS', data)
},
// eslint-disable-next-line no-unused-vars
async isLoggedUserHasAdminAccess({commit, data}) {
return auth.isUserHasAdminAccess()
},
// eslint-disable-next-line no-unused-vars
async getCurrentUserName({commit}, data) {
return auth.getLoggedUsername()
}
}
const mutations = {
SET_AUTH_ENDPOINT(state, data) {
state.authorizationEndpoint = data
},
SET_AUTH_TOKEN(state, data) {
auth.clearIdToken()
auth.clearAccessToken()
auth.clearRefreshToken()
auth.setIdToken(data.id_token)
auth.setAccessToken(data.access_token)
auth.setRefreshToken(data.refresh_token)
state.token = data.id_token
state.accessToken = data.access_token
state.refreshToken = data.refresh_token
},
// eslint-disable-next-line no-unused-vars
SET_TENANT_CACHED_TOKENS(state, data) {
auth.clearTenantAdminCachedAccessToken()
auth.clearTenantAdminCachedIdToken()
auth.clearTenantAdminCachedRefreshToken()
auth.setTenantAdminCachedIdToken(auth.getIdToken())
auth.setTenantAdminCachedAccessToken(auth.getAccessToken())
auth.setTenantAdminCachedRefreshToken(auth.getRefreshToken())
auth.setClientId(data.client_id)
auth.setClientSec(data.client_sec)
},
// eslint-disable-next-line no-unused-vars
RESET_TENANT_CACHED_TOKENS(state, data) {
auth.clearIdToken()
auth.clearAccessToken()
auth.clearRefreshToken()
auth.setIdToken(auth.getTenantAdminCachedIdToken())
auth.setAccessToken(auth.getTenantAdminCachedAccessToken())
auth.setRefreshToken(auth.getTenantAdminCachedRefreshToken())
auth.clearTenantAdminCachedAccessToken()
auth.clearTenantAdminCachedIdToken()
auth.clearTenantAdminCachedRefreshToken()
auth.clearActiveClientID()
auth.clearActiveClientSec()
},
// eslint-disable-next-line no-unused-vars
CLEAR_AUTH_TOKEN(state, data) {
auth.clearIdToken()
auth.clearAccessToken()
auth.clearRefreshToken()
auth.clearTenantAdminCachedAccessToken()
auth.clearTenantAdminCachedIdToken()
auth.clearTenantAdminCachedRefreshToken()
auth.clearActiveClientID()
auth.clearActiveClientSec()
state.idToken = ''
state.accessToken = ''
state.refreshToken = ''
}
}
const getters = {
getAuthorizationEndpoint(state) {
return state.authorizationEndpoint
},
isAuthenticated() {
return auth.isLoggedIn()
},
// eslint-disable-next-line no-unused-vars
getAccessToken(state) {
return auth.getAccessToken()
},
}
export default {
namespaced: true,
state,
getters,
actions,
mutations
}