From 9822427de85fd6341d3c86940289664bf651fbb8 Mon Sep 17 00:00:00 2001 From: ssongliu <73214554+ssongliu@users.noreply.github.com> Date: Tue, 20 May 2025 13:42:01 +0800 Subject: [PATCH] fix: Fix the issue of abnormal token refreshing on alipan (#8747) --- agent/app/service/backup.go | 4 ++-- agent/cron/job/backup.go | 4 ++-- agent/utils/cloud_storage/client/ali.go | 6 +++--- core/app/service/backup.go | 4 ++-- core/init/cron/job/backup.go | 4 ++-- core/utils/cloud_storage/client/ali.go | 4 ++-- frontend/src/lang/modules/en.ts | 2 +- frontend/src/lang/modules/ms.ts | 2 +- frontend/src/lang/modules/pt-br.ts | 2 +- frontend/src/lang/modules/zh-Hant.ts | 2 +- frontend/src/lang/modules/zh.ts | 2 +- frontend/src/views/setting/backup-account/index.vue | 13 ++++++++++--- 12 files changed, 28 insertions(+), 21 deletions(-) diff --git a/agent/app/service/backup.go b/agent/app/service/backup.go index 2a6e20a60..f254bc1e8 100644 --- a/agent/app/service/backup.go +++ b/agent/app/service/backup.go @@ -281,7 +281,7 @@ func (u *BackupService) RefreshToken(req dto.OperateByID) error { } varMap := make(map[string]interface{}) if err := json.Unmarshal([]byte(backup.Vars), &varMap); err != nil { - return fmt.Errorf("Failed to refresh %s - %s token, please retry, err: %v", backup.Type, backup.Name, err) + return fmt.Errorf("failed to refresh %s - %s token, please retry, err: %v", backup.Type, backup.Name, err) } var ( refreshToken string @@ -298,7 +298,7 @@ func (u *BackupService) RefreshToken(req dto.OperateByID) error { if err != nil { varMap["refresh_status"] = constant.StatusFailed varMap["refresh_msg"] = err.Error() - return fmt.Errorf("Failed to refresh %s-%s token, please retry, err: %v", backup.Type, backup.Name, err) + return fmt.Errorf("failed to refresh %s-%s token, please retry, err: %v", backup.Type, backup.Name, err) } varMap["refresh_status"] = constant.StatusSuccess varMap["refresh_time"] = time.Now().Format(constant.DateTimeLayout) diff --git a/agent/cron/job/backup.go b/agent/cron/job/backup.go index 596d945fc..7e2260e7f 100644 --- a/agent/cron/job/backup.go +++ b/agent/cron/job/backup.go @@ -29,7 +29,7 @@ func (b *backup) Run() { global.LOG.Infof("Start to refresh %s-%s access_token ...", backupItem.Type, backupItem.Name) varMap := make(map[string]interface{}) if err := json.Unmarshal([]byte(backupItem.Vars), &varMap); err != nil { - global.LOG.Errorf("Failed to refresh %s - %s token, please retry, err: %v", backupItem.Type, backupItem.Name, err) + global.LOG.Errorf("failed to refresh %s - %s token, please retry, err: %v", backupItem.Type, backupItem.Name, err) continue } var ( @@ -47,7 +47,7 @@ func (b *backup) Run() { if err != nil { varMap["refresh_status"] = constant.StatusFailed varMap["refresh_msg"] = err.Error() - global.LOG.Errorf("Failed to refresh OneDrive token, please retry, err: %v", err) + global.LOG.Errorf("failed to refresh OneDrive token, please retry, err: %v", err) continue } varMap["refresh_status"] = constant.StatusSuccess diff --git a/agent/utils/cloud_storage/client/ali.go b/agent/utils/cloud_storage/client/ali.go index 6b10f96a4..d52fb4ce2 100644 --- a/agent/utils/cloud_storage/client/ali.go +++ b/agent/utils/cloud_storage/client/ali.go @@ -477,7 +477,7 @@ func (a *aliClient) completeUpload(uploadID, fileID string) error { } type tokenResp struct { - AccessToken string `json:"access_token"` + RefreshToken string `json:"refresh_token"` } func loadToken(refresh_token string) (string, error) { @@ -502,7 +502,7 @@ func loadToken(refresh_token string) (string, error) { if err := json.Unmarshal(resp.Body(), &respItem); err != nil { return "", err } - return respItem.AccessToken, nil + return respItem.RefreshToken, nil } func RefreshALIToken(varMap map[string]interface{}) (string, error) { @@ -531,5 +531,5 @@ func RefreshALIToken(varMap map[string]interface{}) (string, error) { if err := json.Unmarshal(resp.Body(), &respItem); err != nil { return "", err } - return respItem.AccessToken, nil + return respItem.RefreshToken, nil } diff --git a/core/app/service/backup.go b/core/app/service/backup.go index 94b884241..140c81917 100644 --- a/core/app/service/backup.go +++ b/core/app/service/backup.go @@ -259,7 +259,7 @@ func (u *BackupService) RefreshToken(req dto.OperateByName) error { } varMap := make(map[string]interface{}) if err := json.Unmarshal([]byte(backup.Vars), &varMap); err != nil { - return fmt.Errorf("Failed to refresh %s - %s token, please retry, err: %v", backup.Type, backup.Name, err) + return fmt.Errorf("failed to refresh %s - %s token, please retry, err: %v", backup.Type, backup.Name, err) } var ( refreshToken string @@ -276,7 +276,7 @@ func (u *BackupService) RefreshToken(req dto.OperateByName) error { if err != nil { varMap["refresh_status"] = constant.StatusFailed varMap["refresh_msg"] = err.Error() - return fmt.Errorf("Failed to refresh %s-%s token, please retry, err: %v", backup.Type, backup.Name, err) + return fmt.Errorf("failed to refresh %s-%s token, please retry, err: %v", backup.Type, backup.Name, err) } varMap["refresh_status"] = constant.StatusSuccess varMap["refresh_time"] = time.Now().Format(constant.DateTimeLayout) diff --git a/core/init/cron/job/backup.go b/core/init/cron/job/backup.go index cfc53ece0..4de602d1c 100644 --- a/core/init/cron/job/backup.go +++ b/core/init/cron/job/backup.go @@ -30,7 +30,7 @@ func (b *backup) Run() { global.LOG.Infof("Start to refresh %s-%s access_token ...", backupItem.Type, backupItem.Name) varMap := make(map[string]interface{}) if err := json.Unmarshal([]byte(backupItem.Vars), &varMap); err != nil { - global.LOG.Errorf("Failed to refresh %s - %s token, please retry, err: %v", backupItem.Type, backupItem.Name, err) + global.LOG.Errorf("failed to refresh %s - %s token, please retry, err: %v", backupItem.Type, backupItem.Name, err) continue } var ( @@ -48,7 +48,7 @@ func (b *backup) Run() { if err != nil { varMap["refresh_status"] = constant.StatusFailed varMap["refresh_msg"] = err.Error() - global.LOG.Errorf("Failed to refresh %s-%s token, please retry, err: %v", backupItem.Type, backupItem.Name, err) + global.LOG.Errorf("failed to refresh %s-%s token, please retry, err: %v", backupItem.Type, backupItem.Name, err) continue } varMap["refresh_status"] = constant.StatusSuccess diff --git a/core/utils/cloud_storage/client/ali.go b/core/utils/cloud_storage/client/ali.go index 73f109694..34ed27557 100644 --- a/core/utils/cloud_storage/client/ali.go +++ b/core/utils/cloud_storage/client/ali.go @@ -338,7 +338,7 @@ func (a *aliClient) completeUpload(uploadID, fileID string) error { } type tokenResp struct { - AccessToken string `json:"access_token"` + RefreshToken string `json:"refresh_token"` } func RefreshALIToken(varMap map[string]interface{}) (string, error) { @@ -367,5 +367,5 @@ func RefreshALIToken(varMap map[string]interface{}) (string, error) { if err := json.Unmarshal(resp.Body(), &respItem); err != nil { return "", err } - return respItem.AccessToken, nil + return respItem.RefreshToken, nil } diff --git a/frontend/src/lang/modules/en.ts b/frontend/src/lang/modules/en.ts index a54cc1e4a..54ad66112 100644 --- a/frontend/src/lang/modules/en.ts +++ b/frontend/src/lang/modules/en.ts @@ -154,7 +154,7 @@ const message = { createSuccess: 'Create Success', updateSuccess: 'Update Success', uploadSuccess: 'Update Success', - operateConfirm: 'If you are sure about the operation, please input it manually', + operateConfirm: 'If you are sure about the operation, please input it manually ', inputOrSelect: 'Please select or enter', copyFailed: 'Copy failed', operatorHelper: 'Would you like to continue performing {1} operation on {0}?', diff --git a/frontend/src/lang/modules/ms.ts b/frontend/src/lang/modules/ms.ts index 7e2771b29..a4cc588e6 100644 --- a/frontend/src/lang/modules/ms.ts +++ b/frontend/src/lang/modules/ms.ts @@ -146,7 +146,7 @@ const message = { createSuccess: 'Berjaya dicipta', updateSuccess: 'Berjaya dikemas kini', uploadSuccess: 'Berjaya dimuat naik', - operateConfirm: 'Jika anda pasti dengan operasi ini, sila masukkan secara manual:', + operateConfirm: 'Jika anda pasti dengan operasi ini, sila masukkan secara manual: ', inputOrSelect: 'Sila pilih atau masukkan', copyFailed: 'Gagal disalin', operatorHelper: diff --git a/frontend/src/lang/modules/pt-br.ts b/frontend/src/lang/modules/pt-br.ts index 568634606..1bb056cd6 100644 --- a/frontend/src/lang/modules/pt-br.ts +++ b/frontend/src/lang/modules/pt-br.ts @@ -146,7 +146,7 @@ const message = { createSuccess: 'Criado com sucesso', updateSuccess: 'Atualizado com sucesso', uploadSuccess: 'Enviado com sucesso', - operateConfirm: 'Se você tem certeza da operação, insira-a manualmente:', + operateConfirm: 'Se você tem certeza da operação, insira-a manualmente: ', inputOrSelect: 'Por favor, selecione ou insira', copyFailed: 'Falha ao copiar', operatorHelper: 'A operação "{1}" será realizada em "{0}" e não poderá ser desfeita. Deseja continuar?', diff --git a/frontend/src/lang/modules/zh-Hant.ts b/frontend/src/lang/modules/zh-Hant.ts index 22f8f9e96..a48cba67d 100644 --- a/frontend/src/lang/modules/zh-Hant.ts +++ b/frontend/src/lang/modules/zh-Hant.ts @@ -151,7 +151,7 @@ const message = { createSuccess: '創建成功', updateSuccess: '更新成功', uploadSuccess: '上傳成功', - operateConfirm: '如果確認操作,請手動輸入', + operateConfirm: '如果確認操作,請手動輸入 ', inputOrSelect: '請選擇或輸入', copyFailed: '復製失敗', operatorHelper: '將對以下{0}進行{1}操作,是否繼續?', diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts index 2ee2899ac..0ca3dbbb1 100644 --- a/frontend/src/lang/modules/zh.ts +++ b/frontend/src/lang/modules/zh.ts @@ -151,7 +151,7 @@ const message = { createSuccess: '创建成功', updateSuccess: '更新成功', uploadSuccess: '上传成功', - operateConfirm: '如果确认操作,请手动输入', + operateConfirm: '如果确认操作,请手动输入 ', inputOrSelect: '请选择或输入', copyFailed: '复制失败', operatorHelper: '将对以下{0}进行 {1} 操作,是否继续?', diff --git a/frontend/src/views/setting/backup-account/index.vue b/frontend/src/views/setting/backup-account/index.vue index 43a8e8317..f9fcace37 100644 --- a/frontend/src/views/setting/backup-account/index.vue +++ b/frontend/src/views/setting/backup-account/index.vue @@ -277,9 +277,16 @@ const onInspect = (row: any) => { }; const refreshItemToken = async (row: any) => { - await refreshToken({ id: row.id, name: row.name, isPublic: row.isPublic }); - MsgSuccess(i18n.global.t('commons.msg.operationSuccess')); - search(); + loading.value = true; + await refreshToken({ id: row.id, name: row.name, isPublic: row.isPublic }) + .then(() => { + loading.value = false; + MsgSuccess(i18n.global.t('commons.msg.operationSuccess')); + search(); + }) + .catch(() => { + loading.value = false; + }); }; const buttons = [