sign in/out with correct redirect

This commit is contained in:
Bubka 2020-01-06 21:05:03 +01:00
parent c5161b880f
commit 1a53aeed33
4 changed files with 26 additions and 10 deletions

View File

@ -31,10 +31,6 @@ const router = new VueRouter({
name: 'login', name: 'login',
component: Login, component: Login,
}, },
{
path: '/logout',
name: 'logout',
},
{ {
path: '/register', path: '/register',
name: 'register', name: 'register',

View File

@ -18,9 +18,9 @@
</router-link> </router-link>
</p> </p>
<p class="level-item" v-if="isLoggedIn"> <p class="level-item" v-if="isLoggedIn">
<router-link :to="{ name: 'sign out' }" class="button is-black"> <a class="button is-black" @click="logout">
Sign out Sign out
</router-link> </a>
</p> </p>
<p class="level-item" v-if="!isLoggedIn"> <p class="level-item" v-if="!isLoggedIn">
<router-link :to="{ name: 'register' }" class="button is-black"> <router-link :to="{ name: 'register' }" class="button is-black">
@ -51,6 +51,26 @@
mounted(){ mounted(){
this.isLoggedIn = localStorage.getItem('jwt') this.isLoggedIn = localStorage.getItem('jwt')
this.username = localStorage.getItem('user') this.username = localStorage.getItem('user')
},
methods: {
logout(evt) {
if(confirm("Are you sure you want to log out?")) {
axios.post('api/logout').then(response => {
localStorage.removeItem('jwt');
delete axios.defaults.headers.common['Authorization'];
this.$router.go('/login');
})
.catch(error => {
localStorage.removeItem('jwt');
delete axios.defaults.headers.common['Authorization'];
this.$router.go('/login');
});
}
}
} }
} }
</script> </script>

View File

@ -62,7 +62,7 @@
localStorage.setItem('jwt',response.data.success.token) localStorage.setItem('jwt',response.data.success.token)
if (localStorage.getItem('jwt') != null){ if (localStorage.getItem('jwt') != null){
this.$router.push({name: 'accounts'}); this.$router.go('/');
} }
}) })
.catch(e => { .catch(e => {
@ -80,7 +80,7 @@
}, },
beforeRouteEnter (to, from, next) { beforeRouteEnter (to, from, next) {
if (localStorage.getItem('jwt')) { if (localStorage.getItem('jwt')) {
return next('accounts'); return next('/');
} }
next(); next();

View File

@ -88,7 +88,7 @@
localStorage.setItem('jwt',response.data.success.token) localStorage.setItem('jwt',response.data.success.token)
if (localStorage.getItem('jwt') != null){ if (localStorage.getItem('jwt') != null){
this.$router.push({name: 'accounts'}); this.$router.go('/');
} }
}) })
.catch(error => { .catch(error => {
@ -103,7 +103,7 @@
}, },
beforeRouteEnter (to, from, next) { beforeRouteEnter (to, from, next) {
if (localStorage.getItem('jwt')) { if (localStorage.getItem('jwt')) {
return next('accounts'); return next('/');
} }
next(); next();