histories are a little messed, will change the logic in the future (techdebt)

This commit is contained in:
Edd
2025-12-30 01:49:39 +00:00
parent c456c9482f
commit 4f391e3638
12 changed files with 726 additions and 239 deletions
+8 -16
View File
@@ -7,8 +7,6 @@ export const useAuthStore = defineStore('auth', () => {
const DEFAULT_TIMEOUT = 5 * 60 * 1000
const REMEMBER_ME_TIMEOUT = 365 * 24 * 60 * 60 * 1000
const currentUser = ref(undefined)
const token = ref(localStorage.getItem('token') || null)
const tokenExpiry = ref(localStorage.getItem('tokenExpiry') ? parseInt(localStorage.getItem('tokenExpiry')) : null)
@@ -54,10 +52,14 @@ export const useAuthStore = defineStore('auth', () => {
const login = async (credentials) => {
const apiStore = useAPIStore()
const loginResp = await apiStore.postLogin(credentials)
const userResp = await apiStore.getAuthUser()
return await setLocalStorageUser(apiStore, loginResp, true)
}
const jwtToken = loginResp.data.token
setToken(jwtToken, credentials.rememberMe)
const setLocalStorageUser = async (api, response, rememberMe) => {
const userResp = await api.getAuthUser()
const jwtToken = response.data.token
setToken(jwtToken, rememberMe)
currentUser.value = userResp.data
localStorage.setItem('currentUser', JSON.stringify(userResp.data))
@@ -72,15 +74,8 @@ export const useAuthStore = defineStore('auth', () => {
localStorage.removeItem('currentUser')
}
const checkTokenExpiry = () => {
if (isTokenAlmostExpired()) {
logout()
return false
}
return true
}
const restoreSession = async () => {
const apiStore = useAPIStore()
const storedToken = localStorage.getItem('token')
const storedUser = localStorage.getItem('currentUser')
const storedTokenExpiry = localStorage.getItem('tokenExpiry')
@@ -102,7 +97,6 @@ export const useAuthStore = defineStore('auth', () => {
try {
currentUser.value = JSON.parse(storedUser)
} catch (e) {
// If stored user data is corrupted, fetch fresh data from API
try {
const userResp = await apiStore.getAuthUser()
currentUser.value = userResp.data
@@ -124,13 +118,11 @@ export const useAuthStore = defineStore('auth', () => {
currentUserID,
token,
rememberMe,
setToken,
getToken,
login,
logout,
resetTokenExpiry,
isTokenAlmostExpired,
checkTokenExpiry,
restoreSession,
}
})