← 返回首页
教程2026 · 06 · 217 分钟阅读

team账号免oauth登录使用codex

这篇整理的是 Linux.do 论坛里一篇关于 Team 账号免 OAuth 登录使用 Codex 的方法:开启个人访问令牌后,将 token 配到 Codex CLI / Codex App,或者转成 CPA 可导入的格式,并通过自定义请求头使用。

1、首先开启允许用户创建个人访问令牌

image

2、创建访问令牌

image

3、codex app或者cli使用可以执行下面命令配置

$env:CODEX_ACCESS_TOKEN = "你的_token"
$env:CODEX_ACCESS_TOKEN | codex login --with-access-token

或者修改auth.json配置文件

{
  "OPENAI_API_KEY": null,
  "personal_access_token": "你的token"
}

然后就可以用codex了

4、CPA里也可以使用
首先登录网页版访问/api/auth/session然后转CPA格式导入CPA里,重点是接下来配置自定义请求头。

{
  "authorization": "Bearer 你的token"
}

image

自动获取CPA格式json文件脚本

const codex_token = "你创建的Accesstoken";

(async () => {
    try {
        const response = await fetch("https://chatgpt.com/api/auth/session");

        if (!response.ok) {
            throw new Error(`HTTP ${response.status}`);
        }

        const data = await response.json();

        const now = new Date();
        const tzOffset = -now.getTimezoneOffset();
        const pad = (n) => String(n).padStart(2, "0");
        const sign = tzOffset >= 0 ? "+" : "-";
        const offsetHours = pad(Math.floor(Math.abs(tzOffset) / 60));
        const offsetMinutes = pad(Math.abs(tzOffset) % 60);
        const lastRefresh = `${now.getFullYear()}-${pad(now.getMonth() + 1)}-${pad(now.getDate())}T${pad(now.getHours())}:${pad(now.getMinutes())}:${pad(now.getSeconds())}${sign}${offsetHours}:${offsetMinutes}`;

        const output = {
            access_token: data.accessToken,
            account_id: data.account.id,
            disabled: false,
            email: data.user.email,
            expired: "2026-12-31T10:00:00+08:00",
            headers: {
                authorization: "Bearer "+codex_token,
            },
            id_token: null,
            last_refresh: lastRefresh,
            refresh_token: null,
            type: "codex",
        };

        const blob = new Blob([JSON.stringify(output, null, 4)], { type: "application/json" });
        const url = URL.createObjectURL(blob);
        const link = document.createElement("a");
        link.href = url;
        link.download = data.user.email + ".json";
        document.body.appendChild(link);
        link.click();
        document.body.removeChild(link);
        URL.revokeObjectURL(url);
    } catch (error) {
        console.error("导出 token 失败:", error);
    }
})();

原文出处linux.do