🐛 Fix unauthorized fetch

This commit is contained in:
2025-09-20 19:02:29 +08:00
parent 09aa144395
commit 38295124cb

View File

@@ -1,6 +1,7 @@
import { defineStore } from "pinia" import { defineStore } from "pinia"
import { ref, computed } from "vue" import { ref, computed } from "vue"
import { useSolarNetwork } from "~/composables/useSolarNetwork" import { useSolarNetwork } from "~/composables/useSolarNetwork"
import { FetchError } from "ofetch"
import type { SnAccount } from "~/types/api" import type { SnAccount } from "~/types/api"
export const useUserStore = defineStore("user", () => { export const useUserStore = defineStore("user", () => {
@@ -35,9 +36,14 @@ export const useUserStore = defineStore("user", () => {
user.value = response as SnAccount user.value = response as SnAccount
console.log(`Logged in as ${user.value.name}`) console.log(`Logged in as ${user.value.name}`)
} catch (e: unknown) { } catch (e: unknown) {
if (e instanceof FetchError && e.statusCode == 401) {
error.value = "Unauthorized"
user.value = null
} else {
error.value = e instanceof Error ? e.message : "An error occurred" error.value = e instanceof Error ? e.message : "An error occurred"
user.value = null // Clear user data on error user.value = null // Clear user data on error
console.error('Failed to fetch user... ', e) console.error("Failed to fetch user... ", e)
}
} finally { } finally {
isLoading.value = false isLoading.value = false
} }
@@ -60,6 +66,6 @@ export const useUserStore = defineStore("user", () => {
isAuthenticated, isAuthenticated,
fetchUser, fetchUser,
setToken, setToken,
logout, logout
} }
}) })