Files
client-web/src/api/session.ts
T

50 lines
1.5 KiB
TypeScript
Raw Normal View History

2026-07-30 17:59:42 +08:00
export const ACCESS_TOKEN_KEY = 'cc-client-access-token'
export const REFRESH_TOKEN_KEY = 'cc-client-refresh-token'
2026-09-03 18:11:07 +08:00
export const REMEMBERED_LOGIN_ID_KEY = 'cc-client-remembered-login-id'
2026-07-30 17:59:42 +08:00
export interface TokenPair {
tokenType: string
accessToken: string
expiresIn: number
refreshToken: string
refreshExpiresIn: number
}
export function getAccessToken() {
return localStorage.getItem(ACCESS_TOKEN_KEY) || sessionStorage.getItem(ACCESS_TOKEN_KEY) || ''
}
export function getRefreshToken() {
return localStorage.getItem(REFRESH_TOKEN_KEY) || sessionStorage.getItem(REFRESH_TOKEN_KEY) || ''
}
2026-08-21 17:20:51 +08:00
2026-09-03 18:11:07 +08:00
export function persistTokenPair(tokens: TokenPair) {
2026-07-30 17:59:42 +08:00
clearSessionTokens()
2026-09-03 18:11:07 +08:00
localStorage.setItem(ACCESS_TOKEN_KEY, tokens.accessToken)
localStorage.setItem(REFRESH_TOKEN_KEY, tokens.refreshToken)
2026-07-30 17:59:42 +08:00
}
2026-09-03 18:11:07 +08:00
export function getRememberedLoginId() {
return localStorage.getItem(REMEMBERED_LOGIN_ID_KEY) || ''
}
export function persistRememberedLoginId(loginId: string, remember: boolean) {
if (remember) localStorage.setItem(REMEMBERED_LOGIN_ID_KEY, loginId)
else localStorage.removeItem(REMEMBERED_LOGIN_ID_KEY)
}
2026-08-08 10:14:07 +08:00
export function persistTemporaryAccessToken(accessToken: string) {
clearSessionTokens()
sessionStorage.setItem(ACCESS_TOKEN_KEY, accessToken)
}
2026-07-30 17:59:42 +08:00
export function clearSessionTokens() {
for (const storage of [localStorage, sessionStorage]) {
storage.removeItem(ACCESS_TOKEN_KEY)
storage.removeItem(REFRESH_TOKEN_KEY)
storage.removeItem('cc-client-token')
}
}