fix: 修复claude OAuth账户刷新token失败的bug

This commit is contained in:
shaw
2025-12-27 13:50:35 +08:00
parent 254f12543c
commit 2101f1d1c8
3 changed files with 70 additions and 21 deletions

View File

@@ -1,6 +1,9 @@
package service
import "time"
import (
"strconv"
"time"
)
type Account struct {
ID int64
@@ -82,12 +85,25 @@ func (a *Account) GetCredential(key string) string {
if a.Credentials == nil {
return ""
}
if v, ok := a.Credentials[key]; ok {
if s, ok := v.(string); ok {
return s
}
v, ok := a.Credentials[key]
if !ok || v == nil {
return ""
}
// 支持多种类型(兼容历史数据中 expires_at 等字段可能是数字或字符串)
switch val := v.(type) {
case string:
return val
case float64:
// JSON 解析后数字默认为 float64
return strconv.FormatInt(int64(val), 10)
case int64:
return strconv.FormatInt(val, 10)
case int:
return strconv.Itoa(val)
default:
return ""
}
return ""
}
func (a *Account) GetModelMapping() map[string]string {