From a4a5ed0b50e00bd555efdbf6a8566673b3fc1113 Mon Sep 17 00:00:00 2001 From: abearxiong Date: Sat, 21 Feb 2026 22:19:30 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=91=BD=E4=BB=A4=E4=BB=A5=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E6=96=B0=E7=9A=84=E8=8E=B7=E5=8F=96=E4=BB=A4=E7=89=8C=E9=80=BB?= =?UTF-8?q?=E8=BE=91=EF=BC=8C=E5=B9=B6=E4=BC=98=E5=8C=96=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=A3=80=E6=9F=A5=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assistant/src/command/user/me.ts | 2 +- .../local-app-manager/assistant-app.ts | 84 ++++++++++--------- assistant/src/module/assistant/query/index.ts | 9 +- 3 files changed, 52 insertions(+), 43 deletions(-) diff --git a/assistant/src/command/user/me.ts b/assistant/src/command/user/me.ts index 1722657..70bd875 100644 --- a/assistant/src/command/user/me.ts +++ b/assistant/src/command/user/me.ts @@ -7,7 +7,7 @@ const me = new Command('me') .action(async () => { const aq = new AssistantQuery(assistantConfig); await aq.init() - const info = await aq.queryLogin.checkLocalUser() + const info = await aq.getToken() logger.info(info); }); diff --git a/assistant/src/module/assistant/local-app-manager/assistant-app.ts b/assistant/src/module/assistant/local-app-manager/assistant-app.ts index 93b67fe..aeadcce 100644 --- a/assistant/src/module/assistant/local-app-manager/assistant-app.ts +++ b/assistant/src/module/assistant/local-app-manager/assistant-app.ts @@ -257,48 +257,52 @@ export class AssistantApp extends Manager { * 检查本地用户登录状态,如果未登录且存在 CNB_TOKEN,则尝试使用 CNB_TOKEN 登录并更新用户信息 */ async checkLocalUser() { - const config = this.config.getConfig(); - const auth = config?.auth; - let checkCNB = false; - if (!auth?.username) { - checkCNB = true; - } else { - let temp = await assistantQuery.queryLogin.getToken() - if (temp) { - const isExpired = await assistantQuery.queryLogin.checkTokenValid() - console.log('Token 是否过期', isExpired); + return checkLocalUser({ assistantApp: this }); + } +} + + +const checkLocalUser = async (opts: { assistantApp: AssistantApp }) => { + const { assistantApp } = opts; + const config = assistantApp.config.getConfig(); + const auth = config?.auth; + let checkCNB = false; + if (!auth?.username) { + checkCNB = true; + // 没有登录过,自动检测ci进行登录 + // 检测条件1:环境变量中存在 CNB_TOKEN + } else { + let temp = await assistantQuery.getToken() + logger.info('[assistant] 当前登录用户', auth.username, 'token有效性检查结果', !!temp); + } + const cnbToken = useKey('CNB_TOKEN'); + if (!checkCNB && cnbToken) { + const res = await assistantQuery.query.post({ + path: 'user', + key: 'cnb-login', + payload: { + data: { + cnbToken: cnbToken, + } } - logger.info('[assistant] 当前登录用户', auth.username, 'token有效性检查结果', !!temp); - } - const cnbToken = useKey('CNB_TOKEN'); - if (!checkCNB && cnbToken) { - const res = await assistantQuery.query.post({ - path: 'user', - key: 'cnb-login', - payload: { - data: { - cnbToken: cnbToken, - } - } - }); - if (res.code === 200) { - logger.info('CNB登录成功,用户信息已更新'); - const resUser = await assistantQuery.queryLogin.beforeSetLoginUser(res.data) - if (resUser.code === 200) { - const userInfo = resUser.data; - auth.username = userInfo.username; - auth.share = 'protected' - const app = config?.app || {}; - if (!app?.id) { - app.id = 'dev-cnb' - } - this.config.setConfig({ - auth, - app - }); - } else { - console.error('CNB登录失败,无法获取用户信息', resUser); + }); + if (res.code === 200) { + logger.info('CNB登录成功,用户信息已更新'); + const resUser = await assistantQuery.queryLogin.beforeSetLoginUser(res.data) + if (resUser.code === 200) { + const userInfo = resUser.data; + auth.username = userInfo.username; + auth.share = 'protected' + const app = config?.app || {}; + if (!app?.id) { + app.id = 'dev-cnb' } + assistantApp.config.setConfig({ + auth, + app + }); + } else { + console.error('CNB登录失败,无法获取用户信息', resUser); } } } diff --git a/assistant/src/module/assistant/query/index.ts b/assistant/src/module/assistant/query/index.ts index ba5e0ae..7bb6918 100644 --- a/assistant/src/module/assistant/query/index.ts +++ b/assistant/src/module/assistant/query/index.ts @@ -35,7 +35,12 @@ export class AssistantQuery { get(body: any, options?: DataOpts) { return this.query.get(body, options); } - getToken() { - return this.queryLogin.getToken(); + async getToken() { + const token = await this.queryLogin.getToken(); + if (!token) return ''; + const isExpired = await this.queryLogin.checkTokenValid() + console.log('Token 是否过期', isExpired, token); + console.log('info', this.queryLogin.cacheStore.cacheData) + return token; } }