]>
Commit | Line | Data |
---|---|---|
a9bfa85d | 1 | import { UserTokenLocalStorageKeys } from './user-local-storage-keys' |
a4ff3100 | 2 | |
3545e72c | 3 | export class OAuthUserTokens { |
a4ff3100 C |
4 | accessToken: string |
5 | refreshToken: string | |
6 | tokenType: string | |
7 | ||
3545e72c | 8 | constructor (hash?: Partial<OAuthUserTokens>) { |
a4ff3100 C |
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 | ||
a9bfa85d C |
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 | ||
3545e72c | 28 | return new OAuthUserTokens({ |
a9bfa85d C |
29 | accessToken: accessTokenLocalStorage, |
30 | refreshToken: refreshTokenLocalStorage, | |
31 | tokenType: tokenTypeLocalStorage | |
32 | }) | |
33 | } | |
34 | ||
3545e72c | 35 | static saveToLocalStorage (localStorage: Pick<Storage, 'setItem'>, tokens: OAuthUserTokens) { |
a9bfa85d C |
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) | |
a4ff3100 C |
45 | } |
46 | } |