From 9e4c5cbab1e2acfb33e84fd0b90c35ce7c64b23d Mon Sep 17 00:00:00 2001 From: Hans-Peter Herzog Date: Wed, 21 Feb 2018 13:44:40 +0100 Subject: [PATCH] TT#32204 Session: As a Customer I want to get logged out properly if session is expired Change-Id: I2cca9767bd69c7d9f741cd918239ffb08b8bc79b --- src/store/user.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/store/user.js b/src/store/user.js index 85df7a54..ca075ecb 100644 --- a/src/store/user.js +++ b/src/store/user.js @@ -81,6 +81,15 @@ export default { userDataSucceeded(state) { return state.userDataSucceeded; }, + jwtTTL(state) { + var expirationBuffer = 0.05; + var jwtParts = state.jwt.split('\.'); + var jwtPayload = JSON.parse(atob(jwtParts[1])); + var timeDiff = Math.floor((Date.now() / 1000) - jwtPayload.exp); + var timeLeft = Math.abs(timeDiff); + var timeLeftBuffer = Math.round(timeLeft * expirationBuffer); + return timeLeft - timeLeftBuffer + } }, mutations: { loginRequesting(state) { @@ -156,6 +165,9 @@ export default { subscriber: result.subscriber, capabilities: result.capabilities }); + setTimeout(()=>{ + context.dispatch('logout'); + }, context.getters.jwtTTL * 1000); context.dispatch('call/initialize', null, { root: true }); }).catch((err)=>{ context.commit('userDataFailed', err.message);