]>
Commit | Line | Data |
---|---|---|
1 | import { UserTokenLocalStorageKeys } from './user-local-storage-keys' | |
2 | ||
3 | export class UserTokens { | |
4 | accessToken: string | |
5 | refreshToken: string | |
6 | tokenType: string | |
7 | ||
8 | constructor (hash?: Partial<UserTokens>) { | |
9 | if (hash) { | |
10 | this.accessToken = hash.accessToken | |
11 | this.refreshToken = hash.refreshToken | |
12 | ||
13 | if (hash.tokenType === 'bearer') { | |
14 | this.tokenType = 'Bearer' | |
15 | } else { | |
16 | this.tokenType = hash.tokenType | |
17 | } | |
18 | } | |
19 | } | |
20 | ||
21 | static getUserTokens (localStorage: Pick<Storage, 'getItem'>) { | |
22 | const accessTokenLocalStorage = localStorage.getItem(UserTokenLocalStorageKeys.ACCESS_TOKEN) | |
23 | const refreshTokenLocalStorage = localStorage.getItem(UserTokenLocalStorageKeys.REFRESH_TOKEN) | |
24 | const tokenTypeLocalStorage = localStorage.getItem(UserTokenLocalStorageKeys.TOKEN_TYPE) | |
25 | ||
26 | if (!accessTokenLocalStorage || !refreshTokenLocalStorage || !tokenTypeLocalStorage) return null | |
27 | ||
28 | return new UserTokens({ | |
29 | accessToken: accessTokenLocalStorage, | |
30 | refreshToken: refreshTokenLocalStorage, | |
31 | tokenType: tokenTypeLocalStorage | |
32 | }) | |
33 | } | |
34 | ||
35 | static saveToLocalStorage (localStorage: Pick<Storage, 'setItem'>, tokens: UserTokens) { | |
36 | localStorage.setItem(UserTokenLocalStorageKeys.ACCESS_TOKEN, tokens.accessToken) | |
37 | localStorage.setItem(UserTokenLocalStorageKeys.REFRESH_TOKEN, tokens.refreshToken) | |
38 | localStorage.setItem(UserTokenLocalStorageKeys.TOKEN_TYPE, tokens.tokenType) | |
39 | } | |
40 | ||
41 | static flushLocalStorage (localStorage: Pick<Storage, 'removeItem'>) { | |
42 | localStorage.removeItem(UserTokenLocalStorageKeys.ACCESS_TOKEN) | |
43 | localStorage.removeItem(UserTokenLocalStorageKeys.REFRESH_TOKEN) | |
44 | localStorage.removeItem(UserTokenLocalStorageKeys.TOKEN_TYPE) | |
45 | } | |
46 | } |