11.18save TODO reload Header Login status
This commit is contained in:
@@ -19,16 +19,16 @@
|
|||||||
<!-- Add "active" class when you're on that page" -->
|
<!-- Add "active" class when you're on that page" -->
|
||||||
<router-link to="/" class="nav-link active" active-class="active">Home</router-link>
|
<router-link to="/" class="nav-link active" active-class="active">Home</router-link>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item" v-if="isLogin">
|
||||||
<router-link to="/article" class="nav-link" active-class="active">New Article</router-link>
|
<router-link to="/article" class="nav-link" active-class="active">New Article</router-link>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item" v-if="isLogin">
|
||||||
<router-link to="/settings" class="nav-link" active-class="active"><i class="ion-gear-a"></i>Settings</router-link>
|
<router-link to="/settings" class="nav-link" active-class="active"><i class="ion-gear-a"></i>Settings</router-link>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item" v-if="!isLogin">
|
||||||
<router-link to="/login" class="nav-link" active-class="active">Sign in</router-link>
|
<router-link to="/login" class="nav-link" active-class="active">Sign in</router-link>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
<li class="nav-item" v-if="!isLogin">
|
||||||
<router-link to="/register" class="nav-link" active-class="active">Sign up</router-link>
|
<router-link to="/register" class="nav-link" active-class="active">Sign up</router-link>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -39,8 +39,31 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
import { onMounted, ref } from "vue";
|
||||||
|
import { useStore } from "vuex";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "TheHeader"
|
name: "TheHeader",
|
||||||
|
setup(){
|
||||||
|
const store = useStore();
|
||||||
|
|
||||||
|
const token = ref("");
|
||||||
|
const username = ref("");
|
||||||
|
|
||||||
|
const isLogin = ref(false);
|
||||||
|
|
||||||
|
onMounted(()=> {
|
||||||
|
console.log("mounted!", isLogin.value);
|
||||||
|
if(store.state.token == ""){
|
||||||
|
isLogin.value = false;
|
||||||
|
}else{
|
||||||
|
isLogin.value = true;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
return { isLogin}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -12,9 +12,6 @@ export default createStore({
|
|||||||
},
|
},
|
||||||
setToken(state, token){
|
setToken(state, token){
|
||||||
state.token = token;
|
state.token = token;
|
||||||
},
|
|
||||||
getToken(state){
|
|
||||||
return state.token
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
@@ -24,6 +21,12 @@ export default createStore({
|
|||||||
localStorage.setItem("username", user.username);
|
localStorage.setItem("username", user.username);
|
||||||
localStorage.setItem("token", user.token);
|
localStorage.setItem("token", user.token);
|
||||||
},
|
},
|
||||||
|
LOGOUT({commit}){
|
||||||
|
commit("setUsername","");
|
||||||
|
commit("setToken","");
|
||||||
|
localStorage.removeItem("username");
|
||||||
|
localStorage.removeItem("token");
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ export default {
|
|||||||
})
|
})
|
||||||
.then(response => {
|
.then(response => {
|
||||||
store.dispatch("LOGIN",response.data.user);
|
store.dispatch("LOGIN",response.data.user);
|
||||||
router.push("/");
|
router.push({name:"Home"});
|
||||||
})
|
})
|
||||||
.catch(error =>{
|
.catch(error =>{
|
||||||
const code = error.response.data.errors.code;
|
const code = error.response.data.errors.code;
|
||||||
|
|||||||
@@ -84,9 +84,11 @@ export default {
|
|||||||
user
|
user
|
||||||
})
|
})
|
||||||
.then(response => {
|
.then(response => {
|
||||||
store.dispatch("LOGIN",response.data.user);
|
store.dispatch("LOGIN",response.data.user)
|
||||||
allHideError();
|
.then(()=>{
|
||||||
router.push("/");
|
allHideError();
|
||||||
|
router.push({name: "Home"});
|
||||||
|
});
|
||||||
})
|
})
|
||||||
.catch(error =>{
|
.catch(error =>{
|
||||||
const code = error.response.data.errors.code;
|
const code = error.response.data.errors.code;
|
||||||
|
|||||||
@@ -30,6 +30,10 @@
|
|||||||
</button>
|
</button>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</form>
|
</form>
|
||||||
|
<hr>
|
||||||
|
<button class="btn btn-outline-danger" @click="logout">
|
||||||
|
Or click here to logout.
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -84,6 +88,12 @@ export default {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const logout = () =>{
|
||||||
|
store.dispatch("LOGOUT").then(()=>{
|
||||||
|
router.push({name: "Home"});
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
axios.get(url+'/api/user',{
|
axios.get(url+'/api/user',{
|
||||||
@@ -100,7 +110,7 @@ export default {
|
|||||||
//TODO 예외처리
|
//TODO 예외처리
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
return {user, password, url, token, getUser, updateUser};
|
return {user, password, url, token, getUser, updateUser, logout};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user