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