fix: 修复Antigravity token刷新间隔问题

This commit is contained in:
shaw
2025-12-31 10:33:00 +08:00
parent aa4631640a
commit b7c6d040dd
2 changed files with 13 additions and 3 deletions

View File

@@ -174,7 +174,10 @@ func (s *AntigravityOAuthService) RefreshToken(ctx context.Context, refreshToken
client := antigravity.NewClient(proxyURL) client := antigravity.NewClient(proxyURL)
tokenResp, err := client.RefreshToken(ctx, refreshToken) tokenResp, err := client.RefreshToken(ctx, refreshToken)
if err == nil { if err == nil {
expiresAt := time.Now().Unix() + tokenResp.ExpiresIn - 300 now := time.Now()
expiresAt := now.Unix() + tokenResp.ExpiresIn - 300
fmt.Printf("[AntigravityOAuth] Token refreshed: expires_in=%d, expires_at=%d (%s)\n",
tokenResp.ExpiresIn, expiresAt, time.Unix(expiresAt, 0).Format("2006-01-02 15:04:05"))
return &AntigravityTokenInfo{ return &AntigravityTokenInfo{
AccessToken: tokenResp.AccessToken, AccessToken: tokenResp.AccessToken,
RefreshToken: tokenResp.RefreshToken, RefreshToken: tokenResp.RefreshToken,

View File

@@ -6,6 +6,12 @@ import (
"time" "time"
) )
const (
// antigravityRefreshWindow Antigravity token 提前刷新窗口15分钟
// Google OAuth token 有效期55分钟提前15分钟刷新
antigravityRefreshWindow = 15 * time.Minute
)
// AntigravityTokenRefresher 实现 TokenRefresher 接口 // AntigravityTokenRefresher 实现 TokenRefresher 接口
type AntigravityTokenRefresher struct { type AntigravityTokenRefresher struct {
antigravityOAuthService *AntigravityOAuthService antigravityOAuthService *AntigravityOAuthService
@@ -23,7 +29,8 @@ func (r *AntigravityTokenRefresher) CanRefresh(account *Account) bool {
} }
// NeedsRefresh 检查账户是否需要刷新 // NeedsRefresh 检查账户是否需要刷新
func (r *AntigravityTokenRefresher) NeedsRefresh(account *Account, refreshWindow time.Duration) bool { // Antigravity 使用固定的10分钟刷新窗口忽略全局配置
func (r *AntigravityTokenRefresher) NeedsRefresh(account *Account, _ time.Duration) bool {
if !r.CanRefresh(account) { if !r.CanRefresh(account) {
return false return false
} }
@@ -36,7 +43,7 @@ func (r *AntigravityTokenRefresher) NeedsRefresh(account *Account, refreshWindow
return false return false
} }
expiryTime := time.Unix(expiresAt, 0) expiryTime := time.Unix(expiresAt, 0)
return time.Until(expiryTime) < refreshWindow return time.Until(expiryTime) < antigravityRefreshWindow
} }
// Refresh 执行 token 刷新 // Refresh 执行 token 刷新