fix: 修复Antigravity token刷新间隔问题
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
@@ -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 刷新
|
||||||
|
|||||||
Reference in New Issue
Block a user