travel-steps/summer2024-frontend/src/stores/auth.js
Nicolas Froger 4d7ab2ed8a
frontend: fix admin auth with redirects
Signed-off-by: Nicolas Froger <nicolas@kektus.xyz>
2024-07-25 12:49:14 +02:00

42 lines
No EOL
981 B
JavaScript

import { defineStore } from 'pinia'
import { ref } from 'vue'
import { API_BASE_URL } from '@/config.js'
export const useAuthStore = defineStore("auth", () => {
const adminToken = ref("");
const isAuth = ref(false);
const error = ref(false);
function login(token) {
adminToken.value = "";
isAuth.value = false;
error.value = false;
return fetch(API_BASE_URL + "/admin/auth/check", {
headers: {
"X-admin-token": token
}
}).then(resp => {
if (resp.ok) {
adminToken.value = token;
isAuth.value = true;
localStorage.setItem("kektus-summer-admin-token", token)
} else {
error.value = true;
}
})
}
function checkFromLocalStorage() {
const storedToken = localStorage.getItem("kektus-summer-admin-token")
if (storedToken) {
return login(storedToken)
}
return Promise.resolve();
}
return { adminToken, login, checkFromLocalStorage, isAuth, error }
})