Avoid refreshing Codex token in settings

This commit is contained in:
chengyongru
2026-06-22 17:14:13 +08:00
committed by Xubin Ren
parent e3c9aff41e
commit 7b153c5aa9
2 changed files with 21 additions and 18 deletions
+8 -3
View File
@@ -283,7 +283,8 @@ def _oauth_provider_status(spec: Any) -> dict[str, Any]:
if spec.name == "openai_codex":
try:
from oauth_cli_kit import get_token as get_codex_token
from oauth_cli_kit.providers import OPENAI_CODEX_PROVIDER
from oauth_cli_kit.storage import FileTokenStorage
except Exception:
return {
"configured": False,
@@ -293,10 +294,14 @@ def _oauth_provider_status(spec: Any) -> dict[str, Any]:
}
token = None
with suppress(Exception):
token = get_codex_token()
token = FileTokenStorage(
token_filename=OPENAI_CODEX_PROVIDER.token_filename,
).load()
expires_at = getattr(token, "expires", None) if token else None
return {
"configured": bool(token and token.access),
"configured": bool(
token and token.access and expires_at and expires_at > int(time.time() * 1000)
),
"account": getattr(token, "account_id", None) if token else None,
"expires_at": expires_at,
"login_supported": True,
+13 -15
View File
@@ -788,19 +788,17 @@ def test_update_network_safety_settings_default_access_is_webui_only(
def test_openai_codex_oauth_status_uses_available_token(
monkeypatch: pytest.MonkeyPatch,
) -> None:
def fake_get_token():
return type(
"Token",
(),
{
"access": "access-token",
"refresh": "refresh-token",
"expires": 2_000_000_000_000,
"account_id": "acct-codex",
},
)()
monkeypatch.setattr("oauth_cli_kit.get_token", fake_get_token)
token = type(
"Token",
(),
{
"access": "access-token",
"refresh": "refresh-token",
"expires": 2_000_000_000_000,
"account_id": "acct-codex",
},
)()
monkeypatch.setattr("oauth_cli_kit.storage.FileTokenStorage.load", lambda _self: token)
status = _oauth_provider_status(find_by_name("openai_codex"))
@@ -811,10 +809,10 @@ def test_openai_codex_oauth_status_uses_available_token(
def test_openai_codex_oauth_status_rejects_unavailable_token(
monkeypatch: pytest.MonkeyPatch,
) -> None:
def fake_get_token():
def fake_load(_self):
raise RuntimeError("refresh failed")
monkeypatch.setattr("oauth_cli_kit.get_token", fake_get_token)
monkeypatch.setattr("oauth_cli_kit.storage.FileTokenStorage.load", fake_load)
status = _oauth_provider_status(find_by_name("openai_codex"))