25 lines
674 B
TypeScript
25 lines
674 B
TypeScript
import { useUserStore } from "~/stores/user"
|
|
|
|
export default defineNuxtPlugin(() => {
|
|
const side = import.meta.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.`
|
|
)
|
|
return
|
|
}
|
|
|
|
// On initial app load, fetch the user if a token exists but the user object isn't populated.
|
|
if (!userStore.user) {
|
|
console.log(
|
|
`[AUTH PLUGIN] User not loaded. Trying to fetching user on ${side}.`
|
|
)
|
|
userStore.fetchUser()
|
|
}
|
|
})
|
|
|