fix: persist token after refresh (#1006)

After a token refresh/exchange, persist the new refresh and id token
This commit is contained in:
Fouad Matin
2025-05-17 21:27:02 -07:00
committed by GitHub
parent dbc0ad348e
commit 835eb77a7d
2 changed files with 40 additions and 10 deletions

View File

@@ -333,15 +333,20 @@ if (cli.flags.login) {
// Ensure the API key is available as an environment variable for legacy code
process.env["OPENAI_API_KEY"] = apiKey;
if (cli.flags.free && savedTokens?.refresh_token) {
if (cli.flags.free) {
// eslint-disable-next-line no-console
console.log(`${chalk.bold("codex --free")} attempting to redeem credits...`);
await maybeRedeemCredits(
client.issuer,
client.client_id,
savedTokens.refresh_token,
savedTokens.id_token,
);
if (!savedTokens?.refresh_token) {
apiKey = await fetchApiKey(client.issuer, client.client_id, true);
// fetchApiKey includes credit redemption as the end of the flow
} else {
await maybeRedeemCredits(
client.issuer,
client.client_id,
savedTokens.refresh_token,
savedTokens.id_token,
);
}
}
// Set of providers that don't require API keys