diff --git a/src/core/openlist/openlist.service.ts b/src/core/openlist/openlist.service.ts index 7cc24f0..59c743b 100644 --- a/src/core/openlist/openlist.service.ts +++ b/src/core/openlist/openlist.service.ts @@ -37,6 +37,23 @@ export class OpenListService { } } + public async updateToken(): Promise { + try { + const username = this.configService.get('OPENLIST_API_BASE_USERNAME'); + const password = this.configService.get('OPENLIST_API_BASE_PASSWORD'); + if (username && password) { + this.token = await OpenListUtils.getToken(username, password); + return true; + } else { + this.logger.warn('请先配置用户名和密码..'); + return false; + } + } catch (e) { + this.logger.error(`更新token失败: ${e.message}`); + return false; + } + } + /** * 获取OpenList的JWT Token,如果Token已过期,则重新获取 * @param username 用户名 diff --git a/src/modules/cdn/cdn.service.ts b/src/modules/cdn/cdn.service.ts index 4f61686..5a42bb5 100644 --- a/src/modules/cdn/cdn.service.ts +++ b/src/modules/cdn/cdn.service.ts @@ -50,6 +50,12 @@ export class CdnService { ); } else { this.logger.error(`晶灵cdn检查更新失败: ${remoteFiles.code}`); + if (remoteFiles.code === 401) { + this.logger.log('尝试更新token..'); + if (await this.openListService.updateToken()) { + this.logger.log('更新token成功..'); + } + } } } catch (error) { this.logger.error(`晶灵cdn检查更新失败: ${error}`);