Newer
Older
const namespaced = true;
const state = {
jwt: null,
userData: null,
didAutoLogout: false,
isLoggedIn: false,
SET_JWT(state, jwt) {
state.jwt = jwt;
SET_USER_DATA(state, userData) {
state.userData = userData;
SET_USER_ROLE(state, userRole) {
state.userRole = userRole;
LOG_OUT(state) {
state.jwt = null;
state.userData = null;
state.userRole = null;
},
state.lastPath = payload
},
SET_EXPIRE_TIME(state, expireTime) {
state.expireTime = expireTime
jwt: (state) => state.jwt,
userData: (state) => state.userData,
userRole: (state) => state.userRole,
didAutoLogout: (state) => state.didAutoLogout,
getLastPath : (state) => state.lastPath,
expireTime : (state) => state.expireTime
setJwt({ commit }, jwt) {
setUserData({ commit, dispatch, state }, userData) {
localStorage.setItem('userData', userData);
/*
calulation of hours to millisec
(hr*3600000)
*/
// const expiresIn = 60 * 1000

moon
committed
// const expiresIn = 20000

moon
committed
const expirationDate = new Date().getTime() + expiresIn
localStorage.setItem('tokenExpiration', expirationDate)
timer= setTimeout(function(){
dispatch('autoLogout')
}, expiresIn )
setUserRole({ commit }, userRole) {
localStorage.setItem('roleName', userRole);
logOut({ commit }) {
localStorage.removeItem('jwt');
localStorage.removeItem('userData');
localStorage.removeItem('roleName');
localStorage.removeItem('tokenExpiration')
clearTimeout(timer)
tryLogin(context) {
const jwtToken = localStorage.getItem('jwt');
const userData = localStorage.getItem('userData');
const role = localStorage.getItem('roleName');
const tokenExpiration = localStorage.getItem('tokenExpiration')
const expiresIn= tokenExpiration - new Date().getTime()
if(expiresIn<0){
return
}
timer = setTimeout(function(){
context.dispatch('autoLogout')
}, expiresIn )
context.commit('SET_JWT', jwtToken);
context.commit('SET_USER_DATA', userData);
context.commit('SET_USER_ROLE', role);
autoLogout(context){
context.dispatch('logOut')
},
setLastPath(context, path){
context.commit('SET_LAST_PATH', path)
},
setExpireTime(context, expireTime) {
context.commit('SET_EXPIRE_TIME', expireTime)
export default {
namespaced,
state,
mutations,
getters,
actions,
};