mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-12 12:28:42 +00:00
fix: reload the page when login token expired (#1839)
This commit is contained in:
@@ -29,14 +29,16 @@ describe('storage', () => {
|
||||
describe('utils', () => {
|
||||
test('isExpired', async () => {
|
||||
const now = Math.floor(Date.now() / 1000);
|
||||
expect(isExpired({ exp: now + 1 } as AccessTokenMessage)).toBeFalsy();
|
||||
expect(isExpired({ exp: now + 1 } as AccessTokenMessage, 0)).toBeFalsy();
|
||||
const promise = new Promise<void>(resolve => {
|
||||
setTimeout(() => {
|
||||
expect(isExpired({ exp: now + 1 } as AccessTokenMessage)).toBeTruthy();
|
||||
expect(
|
||||
isExpired({ exp: now + 1 } as AccessTokenMessage, 0)
|
||||
).toBeTruthy();
|
||||
resolve();
|
||||
}, 2000);
|
||||
});
|
||||
expect(isExpired({ exp: now - 1 } as AccessTokenMessage)).toBeTruthy();
|
||||
expect(isExpired({ exp: now - 1 } as AccessTokenMessage, 0)).toBeTruthy();
|
||||
await promise;
|
||||
});
|
||||
});
|
||||
|
||||
@@ -43,9 +43,13 @@ export function parseIdToken(token: string): AccessTokenMessage {
|
||||
return JSON.parse(decode(token.split('.')[1]));
|
||||
}
|
||||
|
||||
export const isExpired = (token: AccessTokenMessage): boolean => {
|
||||
export const isExpired = (
|
||||
token: AccessTokenMessage,
|
||||
// earlier than `before`, consider it expired
|
||||
before = 60 // 1 minute
|
||||
): boolean => {
|
||||
const now = Math.floor(Date.now() / 1000);
|
||||
return token.exp < now;
|
||||
return token.exp < now - before;
|
||||
};
|
||||
|
||||
export const setLoginStorage = (login: LoginResponse) => {
|
||||
|
||||
Reference in New Issue
Block a user