fix(OAuth缓存): 修复缓存键冲突、401强制刷新及Redis降级处理
- Gemini 缓存键统一增加 gemini: 前缀,避免与其他平台命名空间冲突 - OAuth 账号 401 错误时设置 expires_at=now 并持久化,强制下次请求刷新 token - Redis 锁获取失败时降级为无锁刷新,仅在 token 接近过期时执行,并检查 ctx 取消状态 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -22,7 +22,7 @@ func TestGeminiTokenCacheKey(t *testing.T) {
|
||||
"project_id": "my-project-123",
|
||||
},
|
||||
},
|
||||
expected: "my-project-123",
|
||||
expected: "gemini:my-project-123",
|
||||
},
|
||||
{
|
||||
name: "project_id_with_whitespace",
|
||||
@@ -32,7 +32,7 @@ func TestGeminiTokenCacheKey(t *testing.T) {
|
||||
"project_id": " project-with-spaces ",
|
||||
},
|
||||
},
|
||||
expected: "project-with-spaces",
|
||||
expected: "gemini:project-with-spaces",
|
||||
},
|
||||
{
|
||||
name: "empty_project_id_fallback_to_account_id",
|
||||
@@ -42,7 +42,7 @@ func TestGeminiTokenCacheKey(t *testing.T) {
|
||||
"project_id": "",
|
||||
},
|
||||
},
|
||||
expected: "account:102",
|
||||
expected: "gemini:account:102",
|
||||
},
|
||||
{
|
||||
name: "whitespace_only_project_id_fallback_to_account_id",
|
||||
@@ -52,7 +52,7 @@ func TestGeminiTokenCacheKey(t *testing.T) {
|
||||
"project_id": " ",
|
||||
},
|
||||
},
|
||||
expected: "account:103",
|
||||
expected: "gemini:account:103",
|
||||
},
|
||||
{
|
||||
name: "no_project_id_key_fallback_to_account_id",
|
||||
@@ -60,7 +60,7 @@ func TestGeminiTokenCacheKey(t *testing.T) {
|
||||
ID: 104,
|
||||
Credentials: map[string]any{},
|
||||
},
|
||||
expected: "account:104",
|
||||
expected: "gemini:account:104",
|
||||
},
|
||||
{
|
||||
name: "nil_credentials_fallback_to_account_id",
|
||||
@@ -68,7 +68,7 @@ func TestGeminiTokenCacheKey(t *testing.T) {
|
||||
ID: 105,
|
||||
Credentials: nil,
|
||||
},
|
||||
expected: "account:105",
|
||||
expected: "gemini:account:105",
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user