TT#141051 Logout - Logout automatically if JWT token expiration time is reached

Change-Id: I2b784aad226a1f850b1236ca4d5ed11c1b2f7447
mr10.1.1
Carlo Venusino 4 years ago
parent b9403d94b0
commit 59f508ecb6

@ -389,6 +389,7 @@
"Send Fax": "Send Fax", "Send Fax": "Send Fax",
"Sending fax completed successfully.": "Sending fax completed successfully.", "Sending fax completed successfully.": "Sending fax completed successfully.",
"Serial Ringing": "Serial Ringing", "Serial Ringing": "Serial Ringing",
"Session expired, please login again": "Session expired, please login again",
"Set your PBX settings": "Set your PBX settings", "Set your PBX settings": "Set your PBX settings",
"Set your fax settings": "Set your fax settings", "Set your fax settings": "Set your fax settings",
"Set your personal alarm": "Set your personal alarm", "Set your personal alarm": "Set your personal alarm",

@ -110,6 +110,8 @@ import CscInputPassword from 'components/form/CscInputPassword'
import CscInput from 'components/form/CscInput' import CscInput from 'components/form/CscInput'
import CscRetrievePasswordDialog from 'components/CscRetrievePasswordDialog' import CscRetrievePasswordDialog from 'components/CscRetrievePasswordDialog'
import CscSelectionLanguage from 'components/CscSelectionLanguage' import CscSelectionLanguage from 'components/CscSelectionLanguage'
import { deleteLocal, getLocal } from 'src/storage'
import { showToast } from 'src/helpers/ui'
export default { export default {
name: 'Login', name: 'Login',
components: { components: {
@ -155,6 +157,12 @@ export default {
} }
} }
}, },
mounted () {
if (getLocal('show_session_expired_msg')) {
showToast(this.$t('Session expired, please login again'))
deleteLocal('show_session_expired_msg')
}
},
methods: { methods: {
login () { login () {
this.$store.dispatch('user/login', { this.$store.dispatch('user/login', {

@ -25,6 +25,7 @@ import {
qrPayload qrPayload
} from 'src/helpers/qr' } from 'src/helpers/qr'
import { date } from 'quasar' import { date } from 'quasar'
import { setLocal } from 'src/storage'
export default { export default {
namespaced: true, namespaced: true,
@ -133,7 +134,7 @@ export default {
jwtTTL (state) { jwtTTL (state) {
const expirationBuffer = 0.05 const expirationBuffer = 0.05
try { try {
const jwtParts = state.jwt.split('.') const jwtParts = getJwt().split('.')
const jwtPayload = JSON.parse(atob(jwtParts[1])) const jwtPayload = JSON.parse(atob(jwtParts[1]))
if (_.isNumber(jwtPayload.exp)) { if (_.isNumber(jwtPayload.exp)) {
const timeDiff = Math.floor((Date.now() / 1000) - jwtPayload.exp) const timeDiff = Math.floor((Date.now() / 1000) - jwtPayload.exp)
@ -222,7 +223,6 @@ export default {
}, },
userDataRequesting (state) { userDataRequesting (state) {
state.resellerBranding = null state.resellerBranding = null
state.userDataRequesting = true state.userDataRequesting = true
state.userDataSucceeded = false state.userDataSucceeded = false
state.userDataError = null state.userDataError = null
@ -335,6 +335,7 @@ export default {
context.commit('userDataSucceeded', userData) context.commit('userDataSucceeded', userData)
if (_.isNumber(context.getters.jwtTTL)) { if (_.isNumber(context.getters.jwtTTL)) {
setTimeout(() => { setTimeout(() => {
setLocal('show_session_expired_msg', true)
context.dispatch('logout') context.dispatch('logout')
}, context.getters.jwtTTL * 1000) }, context.getters.jwtTTL * 1000)
} }

Loading…
Cancel
Save