parseCodexCredentials parses Codex CLI credential formats.
(data []byte, logger *zap.Logger)
| 170 | |
| 171 | // parseCodexCredentials parses Codex CLI credential formats. |
| 172 | func parseCodexCredentials(data []byte, logger *zap.Logger) *AuthProfileCredential { |
| 173 | var creds struct { |
| 174 | AccessToken string `json:"access_token"` |
| 175 | RefreshToken string `json:"refresh_token"` |
| 176 | ExpiresAt int64 `json:"expires_at"` |
| 177 | } |
| 178 | if err := json.Unmarshal(data, &creds); err == nil && creds.AccessToken != "" { |
| 179 | if creds.ExpiresAt > 0 && time.Now().Unix() > creds.ExpiresAt { |
| 180 | logger.Debug(i18n.T("auth.sync.codex_token_expired")) |
| 181 | return nil |
| 182 | } |
| 183 | return &AuthProfileCredential{ |
| 184 | CredType: CredentialOAuth, |
| 185 | Provider: ProviderOpenAICodex, |
| 186 | Access: creds.AccessToken, |
| 187 | Refresh: creds.RefreshToken, |
| 188 | Expires: creds.ExpiresAt, |
| 189 | } |
| 190 | } |
| 191 | |
| 192 | return nil |
| 193 | } |
no test coverage detected