birzha-legalizasia-frontend/src/stores/auth.js

46 lines
1.3 KiB
JavaScript

import { defineStore } from "pinia";
import { fetchWrapper } from "@/api";
// import { router } from "@/router";
import { useAlertStore } from "@/stores";
const baseUrl = `${import.meta.env.VITE_API_URL}/api`;
export const useAuthStore = defineStore({
id: "auth",
state: () => ({
// initialize state from local storage to enable user to stay logged in
user: JSON.parse(localStorage.getItem("user")),
returnUrl: null,
}),
actions: {
async login(email, password) {
return fetchWrapper
.post(`${baseUrl}/login`, { email, password })
.then((response) => {
console.log("response: " + response);
console.log("user: " + response["success"]["token"]["plainTextToken"]);
// update pinia state
this.user = user;
// store user details and jwt in local storage to keep user logged in between page refreshes
// localStorage.setItem("user", JSON.stringify(user));
// redirect to previous url or default to home page
// router.push(this.returnUrl || "/");
})
.catch((error) => {
const alertStore = useAlertStore();
alertStore.error(error);
});
},
logout() {
// this.user = null;
// localStorage.removeItem("user");
// router.push("/account/login");
},
},
});