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',
component: Login,
},
{
path: '/logout',
name: 'logout',
},
{
path: '/register',
name: 'register',

View File

@ -18,9 +18,9 @@
</router-link>
</p>
<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
</router-link>
</a>
</p>
<p class="level-item" v-if="!isLoggedIn">
<router-link :to="{ name: 'register' }" class="button is-black">
@ -51,6 +51,26 @@
mounted(){
this.isLoggedIn = localStorage.getItem('jwt')
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>

View File

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

View File

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