🐛 Fix unauthorized fetch
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
Reference in New Issue
Block a user