mirror of
https://github.com/woodchen-ink/nezha-dash-v1.git
synced 2025-07-18 17:41:56 +08:00
feat: refresh token
This commit is contained in:
parent
112607740a
commit
97da6b43c1
@ -145,6 +145,7 @@ function DashboardLink() {
|
|||||||
queryFn: () => fetchLoginUser(),
|
queryFn: () => fetchLoginUser(),
|
||||||
refetchOnMount: true,
|
refetchOnMount: true,
|
||||||
refetchOnWindowFocus: true,
|
refetchOnWindowFocus: true,
|
||||||
|
refetchInterval: 1000 * 60 * 1,
|
||||||
})
|
})
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
import { LoginUserResponse, MonitorResponse, ServerGroupResponse, ServiceResponse, SettingResponse } from "@/types/nezha-api"
|
import { LoginUserResponse, MonitorResponse, ServerGroupResponse, ServiceResponse, SettingResponse } from "@/types/nezha-api"
|
||||||
|
|
||||||
|
let lastestRefreshTokenAt = 0
|
||||||
|
|
||||||
export const fetchServerGroup = async (): Promise<ServerGroupResponse> => {
|
export const fetchServerGroup = async (): Promise<ServerGroupResponse> => {
|
||||||
const response = await fetch("/api/v1/server-group")
|
const response = await fetch("/api/v1/server-group")
|
||||||
const data = await response.json()
|
const data = await response.json()
|
||||||
@ -15,6 +17,13 @@ export const fetchLoginUser = async (): Promise<LoginUserResponse> => {
|
|||||||
if (data.error) {
|
if (data.error) {
|
||||||
throw new Error(data.error)
|
throw new Error(data.error)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// auto refresh token
|
||||||
|
if (document.cookie && (!lastestRefreshTokenAt || Date.now() - lastestRefreshTokenAt > 1000 * 60 * 60)) {
|
||||||
|
lastestRefreshTokenAt = Date.now()
|
||||||
|
fetch("/api/v1/refresh-token")
|
||||||
|
}
|
||||||
|
|
||||||
return data
|
return data
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user