Witam, próbuję stworzyć stronę SPA z użyciem VUEjs/VUEX'a/Axios'a. Jestem na etapie gdzie próbuję sprawdzić czy użytkownik jest zalogowany i mam taki kod:
store.js
getters: {
auth_status: function (state){
axios.get('api/me')
.then(response => {
if(response.data.api_status == 200)
{
console.log(response.data.api_status)
return true
}
return false
})
},
...
a w frontendzie:
<li v-if="$store.getters.auth_status" style="text-align: right;" class="nav-item dropdown ml-auto align-right">
<a class="nav-link dropdown-toggle" href="http://example.com" id="dropdown01" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown</a>
<div class="dropdown-menu" aria-labelledby="dropdown01">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</li>
<li v-else class="nav-item ml-auto">
<router-link class="nav-link log-in" data-toggle="collapse" :to="{ name: 'login' }">
<b>Zaloguj się</b>
</router-link>
</li>
Jednak nawet jeśli user jest zalogowany i w konsoli wyświetli się ten status 200, to w frontendzie dalej jest tylko przycisk zaloguj się zamiast menu, ale jeśli w store.js ustawię po prostu żeby od razu zwrócił true to wszytko działa jak powinno