Hej,
Mam pewien problem ze złapanie errora przy zapytaniu. Przed załadowanie każdej strony, jest wysyłany token do serwera. Jeśli ten się zgadza, serwer zwraca OK, 200. Jeśli token wygasł lub nie ma go w bazie, serwer zwraca kod
401
{"message":"Unauthenticated."}
I teraz nie wiem jak to wyłapać i zmusić użytkownika do wylogowania się po stronie frontu
To jest gotowy kod sprawdzający czy token jest poprawny:
[VERIFY_AUTH](context) {
if (JwtService.getToken()) {
ApiService.setHeader();
ApiService.get("/sanctum/verify")
.then(({ data }) => {
context.commit(SET_AUTH, data);
})
.catch(({ response }) => {
console.log('Wyloguj')
});
} else {
context.commit(PURGE_AUTH);
}
},
I teraz sprawa wygląda następująco:
response zwraca "undefine"
Przerobiłem kod następująco:
[VERIFY_AUTH](context) {
if (JwtService.getToken()) {
ApiService.setHeader();
ApiService.get("/sanctum/verify")
.then(({ data }) => {
context.commit(SET_AUTH, data);
})
.catch(() => {
alert('Wylogowuje');
context.commit(PURGE_AUTH);
});
} else {
context.commit(PURGE_AUTH);
}
},
Gdy token się nie zgadza, pojawia się alert "Wylogowuje" ale już purge Auth się nie wykonuje. Na dodatek, konsola zwraca następujący error:
Uncaught (in promise) Error: Request failed with status code 401
createError createError.js:16
settle settle.js:17
handleLoad xhr.js:61
A tutaj jeszcze kod Api GET:
get(resource, slug = "") {
return Vue.axios.get(`${resource}/${slug}`).catch(error => {
// console.log(error);
throw new Error(`[KT] ApiService ${error}`);
});
},
Jest to prawdopodobnie jakiś problem w przekazywaniu Error'a