histories are a little messed, will change the logic in the future (techdebt)
This commit is contained in:
@@ -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,
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user