42 lines
No EOL
981 B
JavaScript
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 }
|
|
}) |