---
read_when:
    - คุณต้องการทำความเข้าใจ OpenClaw OAuth ตั้งแต่ต้นจนจบ
    - คุณพบปัญหาโทเค็นถูกเพิกถอน / ปัญหาการออกจากระบบ
    - คุณต้องการโฟลว์การตรวจสอบสิทธิ์ของ Claude CLI หรือ OAuth
    - คุณต้องการหลายบัญชีหรือการกำหนดเส้นทางโปรไฟล์
summary: 'OAuth ใน OpenClaw: การแลกเปลี่ยนโทเค็น การจัดเก็บ และรูปแบบหลายบัญชี'
title: OAuth
x-i18n:
    generated_at: "2026-06-27T17:28:26Z"
    model: gpt-5.5
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: 4aa48fd468a541ed72935833a3196105798380799fa6135fe1dd9f68838307b6
    source_path: concepts/oauth.md
    workflow: 16
---

OpenClaw รองรับ "การยืนยันตัวตนแบบสมัครสมาชิก" ผ่าน OAuth สำหรับผู้ให้บริการที่มีบริการนี้
(โดยเฉพาะ **OpenAI Codex (ChatGPT OAuth)**) สำหรับ Anthropic การแบ่งในทางปฏิบัติ
ตอนนี้คือ:

- **คีย์ API ของ Anthropic**: การคิดค่าบริการ Anthropic API ตามปกติ
- **Anthropic Claude CLI / การยืนยันตัวตนแบบสมัครสมาชิกภายใน OpenClaw**: เจ้าหน้าที่ Anthropic
  แจ้งเราว่าการใช้งานนี้ได้รับอนุญาตอีกครั้ง

OpenAI Codex OAuth รองรับอย่างชัดเจนสำหรับการใช้งานในเครื่องมือภายนอกอย่าง
OpenClaw

OpenClaw เก็บทั้งการยืนยันตัวตนด้วยคีย์ API ของ OpenAI และ ChatGPT/Codex OAuth ไว้ใต้
รหัสผู้ให้บริการมาตรฐาน `openai` รหัสโปรไฟล์ `openai-codex:*` รุ่นเก่าและรายการ
`auth.order.openai-codex` เป็นสถานะดั้งเดิมที่ซ่อมแซมโดย
`openclaw doctor --fix`; ใช้รหัสโปรไฟล์ `openai:*` และ `auth.order.openai` สำหรับ
การกำหนดค่าใหม่

สำหรับ Anthropic ในงานโปรดักชัน การยืนยันตัวตนด้วยคีย์ API เป็นเส้นทางที่แนะนำและปลอดภัยกว่า

หน้านี้อธิบาย:

- วิธีการทำงานของ **การแลกเปลี่ยนโทเค็น** OAuth (PKCE)
- ตำแหน่งที่ **จัดเก็บ** โทเค็น (และเหตุผล)
- วิธีจัดการ **หลายบัญชี** (โปรไฟล์ + การแทนที่รายเซสชัน)

OpenClaw ยังรองรับ **Plugin ผู้ให้บริการ** ที่มาพร้อมโฟลว์ OAuth หรือคีย์ API
ของตนเอง เรียกใช้งานผ่าน:

```bash
openclaw models auth login --provider <id>
```

## ที่รับโทเค็น (เหตุผลที่มีอยู่)

ผู้ให้บริการ OAuth มักออก **โทเค็นรีเฟรชใหม่** ระหว่างโฟลว์เข้าสู่ระบบ/รีเฟรช ผู้ให้บริการบางราย (หรือไคลเอนต์ OAuth) อาจทำให้โทเค็นรีเฟรชเก่าใช้ไม่ได้เมื่อมีการออกโทเค็นใหม่สำหรับผู้ใช้/แอปเดียวกัน

อาการในทางปฏิบัติ:

- คุณเข้าสู่ระบบผ่าน OpenClaw _และ_ ผ่าน Claude Code / Codex CLI → หนึ่งในนั้นจะถูก "ออกจากระบบ" แบบสุ่มในภายหลัง

เพื่อลดปัญหานั้น OpenClaw ปฏิบัติต่อ `auth-profiles.json` เป็น **ที่รับโทเค็น**:

- รันไทม์อ่านข้อมูลรับรองจาก **ที่เดียว**
- เราสามารถเก็บหลายโปรไฟล์และกำหนดเส้นทางได้อย่างแน่นอน
- การนำ CLI ภายนอกมาใช้ซ้ำขึ้นอยู่กับผู้ให้บริการ: Codex CLI สามารถบูตสแตรปโปรไฟล์
  `openai:default` ว่างได้ แต่เมื่อ OpenClaw มีโปรไฟล์ OAuth ในเครื่องแล้ว
  โทเค็นรีเฟรชในเครื่องจะเป็นมาตรฐาน หากโทเค็นรีเฟรชในเครื่องนั้นถูกปฏิเสธ
  OpenClaw สามารถใช้โทเค็น Codex CLI ของบัญชีเดียวกันที่ใช้งานได้เป็นทางสำรองเฉพาะรันไทม์;
  การผสานรวมอื่น ๆ สามารถยังคงให้ภายนอกจัดการและอ่านที่เก็บการยืนยันตัวตน CLI ของตนซ้ำได้
- เส้นทางสถานะและการเริ่มต้นที่รู้อยู่แล้วว่าชุดผู้ให้บริการที่กำหนดค่าไว้คืออะไรจะจำกัดขอบเขต
  การค้นหา CLI ภายนอกไว้ที่ชุดนั้น ดังนั้นที่เก็บการเข้าสู่ระบบ CLI ที่ไม่เกี่ยวข้องจะไม่ถูกตรวจสอบ
  สำหรับการตั้งค่าที่มีผู้ให้บริการเพียงรายเดียว

## พื้นที่จัดเก็บ (โทเค็นอยู่ที่ไหน)

ความลับถูกจัดเก็บในที่เก็บการยืนยันตัวตนของเอเจนต์:

- โปรไฟล์การยืนยันตัวตน (OAuth + คีย์ API + การอ้างอิงระดับค่าที่เลือกได้): `~/.openclaw/agents/<agentId>/agent/auth-profiles.json`
- ไฟล์ความเข้ากันได้แบบดั้งเดิม: `~/.openclaw/agents/<agentId>/agent/auth.json`
  (รายการ `api_key` แบบคงที่จะถูกล้างออกเมื่อค้นพบ)

ไฟล์นำเข้าเท่านั้นแบบดั้งเดิม (ยังรองรับอยู่ แต่ไม่ใช่ที่เก็บหลัก):

- `~/.openclaw/credentials/oauth.json` (นำเข้าไปยัง `auth-profiles.json` เมื่อใช้งานครั้งแรก)

ทั้งหมดข้างต้นยังเคารพ `$OPENCLAW_STATE_DIR` (การแทนที่ไดเรกทอรีสถานะ) อ้างอิงฉบับเต็ม: [/gateway/configuration](/th/gateway/configuration-reference#auth-storage)

สำหรับการอ้างอิงความลับแบบคงที่และพฤติกรรมการเปิดใช้งานสแนปช็อตรันไทม์ ดู [การจัดการความลับ](/th/gateway/secrets)

เมื่อเอเจนต์รองไม่มีโปรไฟล์การยืนยันตัวตนในเครื่อง OpenClaw ใช้การสืบทอดแบบอ่านผ่าน
จากที่เก็บเอเจนต์เริ่มต้น/หลัก ระบบไม่โคลน `auth-profiles.json` ของเอเจนต์หลัก
เมื่ออ่าน โทเค็นรีเฟรช OAuth มีความละเอียดอ่อนเป็นพิเศษ: โฟลว์คัดลอกปกติจะข้ามรายการเหล่านี้
ตามค่าเริ่มต้น เพราะผู้ให้บริการบางรายหมุนเวียนหรือทำให้โทเค็นรีเฟรชใช้ไม่ได้หลังใช้งาน
กำหนดค่าการเข้าสู่ระบบ OAuth แยกต่างหากสำหรับเอเจนต์เมื่อจำเป็นต้องใช้บัญชีอิสระ

## ความเข้ากันได้กับโทเค็นดั้งเดิมของ Anthropic

<Warning>
เอกสาร Claude Code สาธารณะของ Anthropic ระบุว่าการใช้ Claude Code โดยตรงยังคงอยู่ภายใน
ขีดจำกัดการสมัครสมาชิก Claude และเจ้าหน้าที่ Anthropic แจ้งเราว่าการใช้งาน Claude
CLI แบบ OpenClaw ได้รับอนุญาตอีกครั้ง ดังนั้น OpenClaw จึงถือว่าการนำ Claude CLI มาใช้ซ้ำและ
การใช้งาน `claude -p` ได้รับอนุญาตสำหรับการผสานรวมนี้ เว้นแต่ Anthropic
จะเผยแพร่นโยบายใหม่

สำหรับเอกสารแผน direct-Claude-Code ปัจจุบันของ Anthropic ดู [การใช้ Claude Code
กับแผน Pro หรือ Max ของคุณ](https://support.claude.com/en/articles/11145838-using-claude-code-with-your-pro-or-max-plan)
และ [การใช้ Claude Code กับแผน Team หรือ Enterprise
ของคุณ](https://support.anthropic.com/en/articles/11845131-using-claude-code-with-your-team-or-enterprise-plan/)

หากคุณต้องการตัวเลือกแบบสมัครสมาชิกอื่น ๆ ใน OpenClaw ดู [OpenAI
Codex](/th/providers/openai), [Qwen Cloud Coding
Plan](/th/providers/qwen), [MiniMax Coding Plan](/th/providers/minimax),
และ [Z.AI / GLM Coding Plan](/th/providers/zai)
</Warning>

OpenClaw ยังเปิดเผย setup-token ของ Anthropic เป็นเส้นทางการยืนยันตัวตนด้วยโทเค็นที่รองรับ แต่ตอนนี้จะเลือกใช้การนำ Claude CLI มาใช้ซ้ำและ `claude -p` ก่อนเมื่อพร้อมใช้งาน

## การย้าย Anthropic Claude CLI

OpenClaw รองรับการนำ Anthropic Claude CLI มาใช้ซ้ำอีกครั้ง หากคุณมีการเข้าสู่ระบบ Claude
ในเครื่องบนโฮสต์อยู่แล้ว โฟลว์เริ่มต้นใช้งาน/กำหนดค่าสามารถนำมาใช้ซ้ำได้โดยตรง

## การแลกเปลี่ยน OAuth (การเข้าสู่ระบบทำงานอย่างไร)

โฟลว์เข้าสู่ระบบแบบโต้ตอบของ OpenClaw ถูกใช้งานใน `openclaw/plugin-sdk/llm` และเชื่อมต่อเข้ากับตัวช่วยตั้งค่า/คำสั่ง

### setup-token ของ Anthropic

รูปแบบโฟลว์:

1. เริ่ม setup-token ของ Anthropic หรือ paste-token จาก OpenClaw
2. OpenClaw เก็บข้อมูลรับรอง Anthropic ที่ได้ไว้ในโปรไฟล์การยืนยันตัวตน
3. การเลือกโมเดลยังคงอยู่ที่ `anthropic/...`
4. โปรไฟล์การยืนยันตัวตน Anthropic ที่มีอยู่ยังคงพร้อมใช้สำหรับการย้อนกลับ/การควบคุมลำดับ

### OpenAI Codex (ChatGPT OAuth)

OpenAI Codex OAuth รองรับอย่างชัดเจนสำหรับการใช้งานนอก Codex CLI รวมถึงเวิร์กโฟลว์ OpenClaw

คำสั่งเข้าสู่ระบบยังคงใช้รหัสผู้ให้บริการ OpenAI มาตรฐาน:

```bash
openclaw models auth login --provider openai
```

ใช้ `--profile-id openai:<name>` สำหรับบัญชี ChatGPT/Codex OAuth หลายบัญชีใน
เอเจนต์เดียว อย่าใช้ `openai-codex:<name>` สำหรับโปรไฟล์ใหม่ Doctor จะย้าย
คำนำหน้าเก่านั้นไปยังรหัสโปรไฟล์ `openai:*` ที่ไม่ชนกัน; เรียกใช้
`openclaw models auth list --provider openai` หลังซ่อมแซม ก่อนคัดลอก
รหัสโปรไฟล์ลงใน `auth.order` หรือ `/model ...@<profileId>`

รูปแบบโฟลว์ (PKCE):

1. สร้างตัวตรวจสอบ/คำท้า PKCE + `state` แบบสุ่ม
2. เปิด `https://auth.openai.com/oauth/authorize?...`
3. พยายามจับคอลแบ็กที่ `http://127.0.0.1:1455/auth/callback`
4. หากผูกคอลแบ็กไม่ได้ (หรือคุณอยู่ระยะไกล/ไม่มีส่วนติดต่อผู้ใช้) ให้วาง URL/โค้ดเปลี่ยนเส้นทาง
5. แลกเปลี่ยนที่ `https://auth.openai.com/oauth/token`
6. แยก `accountId` จากโทเค็นเข้าถึงและเก็บ `{ access, refresh, expires, accountId }`

เส้นทางตัวช่วยตั้งค่าคือ `openclaw onboard` → ตัวเลือกการยืนยันตัวตน `openai`

## การรีเฟรช + การหมดอายุ

โปรไฟล์เก็บประทับเวลา `expires`

ที่รันไทม์:

- หาก `expires` อยู่ในอนาคต → ใช้โทเค็นเข้าถึงที่จัดเก็บไว้
- หากหมดอายุ → รีเฟรช (ภายใต้การล็อกไฟล์) และเขียนทับข้อมูลรับรองที่จัดเก็บไว้
- หากเอเจนต์รองอ่านโปรไฟล์ OAuth ของเอเจนต์หลักที่สืบทอดมา การรีเฟรช
  จะเขียนกลับไปยังที่เก็บเอเจนต์หลัก แทนที่จะคัดลอกโทเค็นรีเฟรชเข้าไปใน
  ที่เก็บเอเจนต์รอง
- ข้อยกเว้น: ข้อมูลรับรอง CLI ภายนอกบางรายการยังคงให้ภายนอกจัดการ; OpenClaw
  อ่านที่เก็บการยืนยันตัวตน CLI เหล่านั้นซ้ำ แทนที่จะใช้โทเค็นรีเฟรชที่คัดลอกมา
  การบูตสแตรป Codex CLI ตั้งใจให้แคบกว่า: จะเพาะโปรไฟล์
  `openai:default` ว่าง จากนั้นการรีเฟรชที่ OpenClaw เป็นเจ้าของจะคงให้โปรไฟล์ในเครื่อง
  เป็นมาตรฐาน หากการรีเฟรช Codex ในเครื่องล้มเหลวและ Codex CLI มี
  โทเค็นที่ใช้งานได้สำหรับบัญชีเดียวกัน OpenClaw อาจใช้โทเค็นนั้นสำหรับคำขอรันไทม์
  ปัจจุบันโดยไม่เขียนกลับไปยัง `auth-profiles.json`

โฟลว์รีเฟรชเป็นแบบอัตโนมัติ โดยทั่วไปคุณไม่จำเป็นต้องจัดการโทเค็นเอง

## หลายบัญชี (โปรไฟล์) + การกำหนดเส้นทาง

สองรูปแบบ:

### 1) แนะนำ: แยกเอเจนต์

หากคุณต้องการให้ "ส่วนตัว" และ "งาน" ไม่โต้ตอบกันเลย ให้ใช้เอเจนต์ที่แยกกัน (เซสชัน + ข้อมูลรับรอง + เวิร์กสเปซแยกกัน):

```bash
openclaw agents add work
openclaw agents add personal
```

จากนั้นกำหนดค่าการยืนยันตัวตนต่อเอเจนต์ (ตัวช่วยตั้งค่า) และกำหนดเส้นทางแชตไปยังเอเจนต์ที่ถูกต้อง

### 2) ขั้นสูง: หลายโปรไฟล์ในเอเจนต์เดียว

`auth-profiles.json` รองรับรหัสโปรไฟล์หลายรายการสำหรับผู้ให้บริการเดียวกัน

เลือกว่าจะใช้โปรไฟล์ใด:

- แบบทั่วทั้งระบบผ่านการจัดลำดับการกำหนดค่า (`auth.order`)
- รายเซสชันผ่าน `/model ...@<profileId>`

ตัวอย่าง (การแทนที่ของเซสชัน):

- `/model Opus@anthropic:work`

วิธีดูว่ามีรหัสโปรไฟล์ใดบ้าง:

- `openclaw channels list --json` (แสดง `auth[]`)

เอกสารที่เกี่ยวข้อง:

- [การสลับโมเดลเมื่อขัดข้อง](/th/concepts/model-failover) (กฎการหมุนเวียน + คูลดาวน์)
- [คำสั่งสแลช](/th/tools/slash-commands) (พื้นผิวคำสั่ง)

## ที่เกี่ยวข้อง

- [การยืนยันตัวตน](/th/gateway/authentication) - ภาพรวมการยืนยันตัวตนของผู้ให้บริการโมเดล
- [ความลับ](/th/gateway/secrets) - การจัดเก็บข้อมูลรับรองและ SecretRef
- [อ้างอิงการกำหนดค่า](/th/gateway/configuration-reference#auth-storage) - คีย์การกำหนดค่าการยืนยันตัวตน
