feat: refresh token when page is reloaded

This commit is contained in:
2026-07-14 22:45:55 +02:00
parent cd7bc8427f
commit e1928f7af9
4 changed files with 52 additions and 2 deletions
+24
View File
@@ -71,6 +71,30 @@ export namespace Auth {
}
}
export async function refreshToken(): Promise<boolean> {
const token = getToken()
if (!token) return false
return api("/auth/refresh", "POST").then(res => {
if (res.status == 200) {
return res.json().then(data => {
if (data.success) {
setToken(data.token ?? "")
const payload = parseJwt(data.token)
loggedIn = true
user = payload.username
privileges = payload.privileges
privileges.push(user)
loggedInSubject.next(true)
return true
}
return false
})
}
return false
}).catch(() => false)
}
function parseJwt (token) {
var base64Url = token.split('.')[1];
var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');