diff --git a/src/App.vue b/src/App.vue index 563e382..652637a 100644 --- a/src/App.vue +++ b/src/App.vue @@ -28,7 +28,7 @@ export default { } }, async mounted() { - if (!await data.isLoggedIn()) { + if (!await data.currentUser()) { this.$router.push('/login') } } diff --git a/src/data.js b/src/data.js index cb060d0..b02b424 100644 --- a/src/data.js +++ b/src/data.js @@ -90,7 +90,11 @@ export default { return await response.json(); }, - async isLoggedIn() { + async currentUser() { + if (user) { + return user; + } + var cookie = decodeURIComponent(document.cookie).split(";").find(cookie => cookie.trimStart().startsWith("user_id=")); if (cookie) { const response = await fetch(BASE_URL + "/auth/refresh", { @@ -98,10 +102,12 @@ export default { credentials: "include", }); - user = await response.json(); + if (response.ok) { + user = await response.json(); + } } - return user !== null; + return user; }, async login(username) { const response = await fetch(BASE_URL + "/auth/login", { @@ -113,7 +119,10 @@ export default { body: JSON.stringify({ username }), }); - user = await response.json(); + if (response.ok) { + user = await response.json(); + } + return user; }, async deleteRecipe(id) {