diff --git a/frontend/stores/auth.ts b/frontend/stores/auth.ts deleted file mode 100644 index 9b72901..0000000 --- a/frontend/stores/auth.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { defineStore } from "pinia"; -import { useLocalStorage } from "@vueuse/core"; -import { UserClient } from "~~/lib/api/user"; -import { UserOut } from "~~/lib/api/types/data-contracts"; - -export const useAuthStore = defineStore("auth", { - state: () => ({ - token: useLocalStorage("pinia/auth/token", ""), - attachmentToken: useLocalStorage("pinia/auth/attachmentToken", ""), - expires: useLocalStorage("pinia/auth/expires", ""), - self: null as UserOut | null, - }), - getters: { - isTokenExpired: state => { - if (!state.expires) { - return true; - } - - if (typeof state.expires === "string") { - return new Date(state.expires) < new Date(); - } - - return state.expires < new Date(); - }, - }, - actions: { - async logout(api: UserClient) { - const result = await api.user.logout(); - - this.token = ""; - this.attachmentToken = ""; - this.expires = ""; - this.self = null; - - return result; - }, - /** - * clearSession is used when the user cannot be logged out via the API and - * must clear it's local session, usually when a 401 is received. - */ - clearSession() { - this.token = ""; - this.expires = ""; - navigateTo("/"); - }, - }, -});