feat: refresh token when page is reloaded
This commit is contained in:
@@ -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, '/');
|
||||
|
||||
Reference in New Issue
Block a user