()
| 88 | } |
| 89 | |
| 90 | const refreshPromiseFn = async () => { |
| 91 | const resp = await RefreshToken(netDiskType, token.refreshToken); |
| 92 | if (resp.code !== 0) { |
| 93 | await localStorageDAO.delete(key); |
| 94 | // 刷新失败,并且标记失效,尝试重新获取token |
| 95 | if (invalid) { |
| 96 | return await AuthVerify(netDiskType); |
| 97 | } |
| 98 | throw new WarpTokenError(new Error(resp.msg)); |
| 99 | } |
| 100 | const newToken = { |
| 101 | accessToken: resp.data.token.access_token, |
| 102 | refreshToken: resp.data.token.refresh_token, |
| 103 | createtime: Date.now(), |
| 104 | }; |
| 105 | // 更新token |
| 106 | await localStorageDAO.saveValue(key, newToken); |
| 107 | return newToken.accessToken; |
| 108 | }; |
| 109 | const refreshPromise: Promise<string> = refreshPromiseFn().finally(() => { |
| 110 | if (refreshTokenPromises[netDiskType] === refreshPromise) { |
| 111 | delete refreshTokenPromises[netDiskType]; |
no test coverage detected