fix(privacy): 刷新令牌失败时也尝试设置 OpenAI 隐私模式
刷新失败不代表 access_token 无效,在后台定时刷新(不可重试错误 + 重试耗尽)和前端批量/单次刷新的失败路径中,均利用可能仍有效的 access_token 调用隐私设置。 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -785,6 +785,8 @@ func (h *AccountHandler) refreshSingleAccount(ctx context.Context, account *serv
|
|||||||
if account.IsOpenAI() {
|
if account.IsOpenAI() {
|
||||||
tokenInfo, err := h.openaiOAuthService.RefreshAccountToken(ctx, account)
|
tokenInfo, err := h.openaiOAuthService.RefreshAccountToken(ctx, account)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
// 刷新失败但 access_token 可能仍有效,尝试设置隐私
|
||||||
|
h.adminService.EnsureOpenAIPrivacy(ctx, account)
|
||||||
return nil, "", err
|
return nil, "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -300,6 +300,8 @@ func (s *TokenRefreshService) refreshWithRetry(ctx context.Context, account *Acc
|
|||||||
"error", setErr,
|
"error", setErr,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
// 刷新失败但 access_token 可能仍有效,尝试设置隐私
|
||||||
|
s.ensureOpenAIPrivacy(ctx, account)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -327,6 +329,9 @@ func (s *TokenRefreshService) refreshWithRetry(ctx context.Context, account *Acc
|
|||||||
"error", lastErr,
|
"error", lastErr,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// 刷新失败但 access_token 可能仍有效,尝试设置隐私
|
||||||
|
s.ensureOpenAIPrivacy(ctx, account)
|
||||||
|
|
||||||
// 设置临时不可调度 10 分钟(不标记 error,保持 status=active 让下个刷新周期能继续尝试)
|
// 设置临时不可调度 10 分钟(不标记 error,保持 status=active 让下个刷新周期能继续尝试)
|
||||||
until := time.Now().Add(tokenRefreshTempUnschedDuration)
|
until := time.Now().Add(tokenRefreshTempUnschedDuration)
|
||||||
reason := fmt.Sprintf("token refresh retry exhausted: %v", lastErr)
|
reason := fmt.Sprintf("token refresh retry exhausted: %v", lastErr)
|
||||||
|
|||||||
Reference in New Issue
Block a user