From 73afb34964cc5a05bd17b36fe8285c908a1a682b Mon Sep 17 00:00:00 2001 From: KevinMidboe Date: Thu, 9 Apr 2020 20:53:19 +0200 Subject: [PATCH] Logout route that clears localstorage for anything set clientside. --- src/api.js | 15 +++++++++------ src/routes.js | 11 +++++++++++ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/api.js b/src/api.js index 275202c..d36b6c5 100644 --- a/src/api.js +++ b/src/api.js @@ -286,7 +286,7 @@ const register = (username, password) => { }) } -const login = (username, password) => { +const login = (username, password, throwError=false) => { const url = new URL('v1/user/login', SEASONED_URL) const options = { method: 'POST', @@ -295,11 +295,14 @@ const login = (username, password) => { } return fetch(url.href, options) - .then(resp => resp.json()) - .catch(error => { - console.error('Unexpected error occured before receiving response. Error:', error) - // TODO log to sentry the issue here - throw error + .then(resp => { + if (resp.status == 200) + return resp.json(); + + if (throwError) + throw resp; + else + console.error("Error occured when trying to sign in.\nError:", resp); }) } diff --git a/src/routes.js b/src/routes.js index 4dbd90d..1517c7f 100644 --- a/src/routes.js +++ b/src/routes.js @@ -65,6 +65,17 @@ let routes = [ path: '/404', component: (resolve) => require(['./components/404.vue'], resolve) }, + { + name: 'logout', + path: '/logout', + component: { + template: '
', + created() { + localStorage.clear(); + this.$router.push({ name: 'home' }); + } + } + }, { path: '*', redirect: '/'