release v2.0.0 #4
|
@ -75,19 +75,13 @@ export const useMainStore = defineStore({
|
|||
async logout() {
|
||||
if (!this.session || !this.session.token) return false;
|
||||
|
||||
LocalStorage.clear();
|
||||
|
||||
try {
|
||||
const token = this.session.token;
|
||||
this.$patch({
|
||||
session: undefined,
|
||||
user: undefined,
|
||||
});
|
||||
await api.delete(`/auth/${token}`);
|
||||
} catch (error) {
|
||||
return false;
|
||||
} finally {
|
||||
SessionStorage.clear();
|
||||
this.handleLoggedOut( );
|
||||
}
|
||||
return true;
|
||||
},
|
||||
|
@ -151,6 +145,15 @@ export const useMainStore = defineStore({
|
|||
async setShortcuts() {
|
||||
await api.put(`users/${this.currentUser.userid}/shortcuts`, this.shortcuts);
|
||||
},
|
||||
handleLoggedOut() {
|
||||
LocalStorage.clear();
|
||||
|
||||
this.$patch({
|
||||
session: undefined,
|
||||
user: undefined,
|
||||
});
|
||||
SessionStorage.clear();
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ export default boot(({ router }) => {
|
|||
|
||||
/***
|
||||
* Intercept responses
|
||||
* - filter 401 --> logout
|
||||
* - filter 401 --> handleLoggedOut
|
||||
* - filter timeout or 502-504 --> backendOffline
|
||||
*/
|
||||
api.interceptors.response.use(
|
||||
|
@ -43,7 +43,7 @@ export default boot(({ router }) => {
|
|||
query: { redirect: next },
|
||||
});
|
||||
} else if (e.response && e.response.status == 401) {
|
||||
void store.logout();
|
||||
void store.handleLoggedOut();
|
||||
if (current.name !== 'login') {
|
||||
await router.push({
|
||||
name: 'login',
|
||||
|
|
|
@ -12,7 +12,7 @@ export default boot(({ router }) => {
|
|||
// Secured area (LOGIN REQUIRED)
|
||||
// Check login is ok
|
||||
if (!store.session || store.session.expires <= new Date()) {
|
||||
void store.logout();
|
||||
void store.handleLoggedOut();
|
||||
return next({ name: 'login', query: { redirect: to.fullPath } });
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue