TT#32204 Session: Ignore logout timeout if session expiration is not set in jwt

Change-Id: I13f0631fbba8721f863cd01c9a377ee5e2acf1bf
changes/50/19250/1
Hans-Peter Herzog 8 years ago
parent 9e4c5cbab1
commit 8db9bbddb8

@ -82,13 +82,21 @@ export default {
return state.userDataSucceeded; return state.userDataSucceeded;
}, },
jwtTTL(state) { jwtTTL(state) {
var expirationBuffer = 0.05; let expirationBuffer = 0.05;
var jwtParts = state.jwt.split('\.'); try {
var jwtPayload = JSON.parse(atob(jwtParts[1])); let jwtParts = state.jwt.split('\.');
var timeDiff = Math.floor((Date.now() / 1000) - jwtPayload.exp); let jwtPayload = JSON.parse(atob(jwtParts[1]));
var timeLeft = Math.abs(timeDiff); if(_.isNumber(jwtPayload.exp)) {
var timeLeftBuffer = Math.round(timeLeft * expirationBuffer); let timeDiff = Math.floor((Date.now() / 1000) - jwtPayload.exp);
return timeLeft - timeLeftBuffer let timeLeft = Math.abs(timeDiff);
let timeLeftBuffer = Math.round(timeLeft * expirationBuffer);
return timeLeft - timeLeftBuffer;
} else {
return null;
}
} catch(err) {
return null;
}
} }
}, },
mutations: { mutations: {
@ -165,9 +173,11 @@ export default {
subscriber: result.subscriber, subscriber: result.subscriber,
capabilities: result.capabilities capabilities: result.capabilities
}); });
setTimeout(()=>{ if(_.isNumber(context.getters.jwtTTL)) {
context.dispatch('logout'); setTimeout(()=>{
}, context.getters.jwtTTL * 1000); context.dispatch('logout');
}, context.getters.jwtTTL * 1000);
}
context.dispatch('call/initialize', null, { root: true }); context.dispatch('call/initialize', null, { root: true });
}).catch((err)=>{ }).catch((err)=>{
context.commit('userDataFailed', err.message); context.commit('userDataFailed', err.message);

Loading…
Cancel
Save