♻️ Refactored the auth flow

This commit is contained in:
2025-10-01 22:52:23 +08:00
parent 3e68158b4e
commit 6853acea98
4 changed files with 23 additions and 63 deletions

View File

@@ -1,24 +1,24 @@
import { useUserStore } from '~/stores/user'
import { useUserStore } from "~/stores/user"
export default defineNuxtPlugin(() => {
const side = process.server ? 'SERVER' : 'CLIENT'
const side = process.server ? "SERVER" : "CLIENT"
console.log(`[AUTH PLUGIN] Running on ${side}`)
const userStore = useUserStore()
// Prevent fetching if it's already in progress
if (userStore.isLoading) {
console.log(`[AUTH PLUGIN] User fetch already in progress on ${side}. Skipping.`)
console.log(
`[AUTH PLUGIN] User fetch already in progress on ${side}. Skipping.`
)
return
}
// On initial app load, fetch the user if a token exists but the user object isn't populated.
if (userStore.token && !userStore.user) {
console.log(`[AUTH PLUGIN] Token found, user not loaded. Fetching user on ${side}.`)
if (!userStore.user) {
console.log(
`[AUTH PLUGIN] User not loaded. Trying to fetching user on ${side}.`
)
userStore.fetchUser()
} else {
console.log(`[AUTH PLUGIN] Conditions not met for fetching user on ${side}.`, {
hasToken: !!userStore.token,
hasUser: !!userStore.user
})
}
})
})