Changeset View
Changeset View
Standalone View
Standalone View
src/resources/js/app.js
Show First 20 Lines • Show All 124 Lines • ▼ Show 20 Lines | methods: { | ||||
// Set user state to "logged in" | // Set user state to "logged in" | ||||
loginUser(response, dashboard, update) { | loginUser(response, dashboard, update) { | ||||
if (!update) { | if (!update) { | ||||
store.commit('logoutUser') // destroy old state data | store.commit('logoutUser') // destroy old state data | ||||
store.commit('loginUser') | store.commit('loginUser') | ||||
} | } | ||||
localStorage.setItem('token', response.access_token) | localStorage.setItem('token', response.access_token) | ||||
localStorage.setItem('refreshToken', response.refresh_token) | |||||
axios.defaults.headers.common.Authorization = 'Bearer ' + response.access_token | axios.defaults.headers.common.Authorization = 'Bearer ' + response.access_token | ||||
if (response.email) { | if (response.email) { | ||||
store.state.authInfo = response | store.state.authInfo = response | ||||
} | } | ||||
if (dashboard !== false) { | if (dashboard !== false) { | ||||
this.$router.push(store.state.afterLogin || { name: 'dashboard' }) | this.$router.push(store.state.afterLogin || { name: 'dashboard' }) | ||||
Show All 9 Lines | methods: { | ||||
timeout -= 60 | timeout -= 60 | ||||
} | } | ||||
// TODO: We probably should try a few times in case of an error | // TODO: We probably should try a few times in case of an error | ||||
// TODO: We probably should prevent axios from doing any requests | // TODO: We probably should prevent axios from doing any requests | ||||
// while the token is being refreshed | // while the token is being refreshed | ||||
this.refreshTimeout = setTimeout(() => { | this.refreshTimeout = setTimeout(() => { | ||||
axios.post('/api/auth/refresh').then(response => { | axios.post('/api/auth/refresh', {'refresh_token': response.refresh_token}).then(response => { | ||||
this.loginUser(response.data, false, true) | this.loginUser(response.data, false, true) | ||||
}) | }) | ||||
}, timeout * 1000) | }, timeout * 1000) | ||||
}, | }, | ||||
// Set user state to "not logged in" | // Set user state to "not logged in" | ||||
logoutUser(redirect) { | logoutUser(redirect) { | ||||
store.commit('logoutUser') | store.commit('logoutUser') | ||||
localStorage.setItem('token', '') | localStorage.setItem('token', '') | ||||
localStorage.setItem('refreshToken', '') | |||||
delete axios.defaults.headers.common.Authorization | delete axios.defaults.headers.common.Authorization | ||||
if (redirect !== false) { | if (redirect !== false) { | ||||
this.$router.push({ name: 'login' }) | this.$router.push({ name: 'login' }) | ||||
} | } | ||||
clearTimeout(this.refreshTimeout) | clearTimeout(this.refreshTimeout) | ||||
}, | }, | ||||
▲ Show 20 Lines • Show All 349 Lines • Show Last 20 Lines |