---
read_when:
    - กำลังทำงานเกี่ยวกับการกำหนดโปรไฟล์การยืนยันตัวตนหรือการส่งต่อข้อมูลรับรอง
    - กำลังดีบักความล้มเหลวของการยืนยันตัวตนของโมเดลหรือลำดับโปรไฟล์
summary: ความสามารถในการใช้ข้อมูลรับรองแบบ canonical และความหมายของการพิจารณาสิทธิ์กับการกำหนดข้อมูลรับรองสำหรับโปรไฟล์การยืนยันตัวตน
title: ความหมายของข้อมูลรับรองการยืนยันตัวตน
x-i18n:
    generated_at: "2026-04-24T08:57:07Z"
    model: gpt-5.4
    provider: openai
    source_hash: b45da872b9ab177acbac08ce353b6ee31b6a068477ace52e5e5eda32a848d8bb
    source_path: auth-credential-semantics.md
    workflow: 15
---

เอกสารนี้กำหนดความหมายมาตรฐานสำหรับการพิจารณาสิทธิ์และการกำหนดข้อมูลรับรองแบบ canonical ที่ใช้ร่วมกันใน:

- `resolveAuthProfileOrder`
- `resolveApiKeyForProfile`
- `models status --probe`
- `doctor-auth`

เป้าหมายคือทำให้พฤติกรรมขณะเลือกและขณะรันไทม์สอดคล้องกัน

## รหัสเหตุผลของการ probe แบบคงที่

- `ok`
- `excluded_by_auth_order`
- `missing_credential`
- `invalid_expires`
- `expired`
- `unresolved_ref`
- `no_model`

## ข้อมูลรับรองแบบโทเค็น

ข้อมูลรับรองแบบโทเค็น (`type: "token"`) รองรับ `token` แบบอินไลน์ และ/หรือ `tokenRef`

### กฎการพิจารณาสิทธิ์

1. โปรไฟล์โทเค็นจะไม่มีสิทธิ์ใช้งานเมื่อไม่มีทั้ง `token` และ `tokenRef`
2. `expires` เป็นตัวเลือกเสริม
3. หากมี `expires` ค่านั้นต้องเป็นตัวเลขจำนวนจำกัดที่มากกว่า `0`
4. หาก `expires` ไม่ถูกต้อง (`NaN`, `0`, ค่าติดลบ, ไม่เป็นจำนวนจำกัด, หรือเป็นชนิดข้อมูลผิด) โปรไฟล์นั้นจะไม่มีสิทธิ์ใช้งานด้วย `invalid_expires`
5. หาก `expires` อยู่ในอดีต โปรไฟล์นั้นจะไม่มีสิทธิ์ใช้งานด้วย `expired`
6. `tokenRef` ไม่ได้ข้ามการตรวจสอบ `expires`

### กฎการกำหนดข้อมูลรับรอง

1. ความหมายของตัวแก้ไขตรงกับความหมายของการพิจารณาสิทธิ์สำหรับ `expires`
2. สำหรับโปรไฟล์ที่มีสิทธิ์ใช้งาน วัสดุโทเค็นอาจถูกกำหนดจากค่าอินไลน์หรือ `tokenRef`
3. ref ที่ไม่สามารถกำหนดได้จะทำให้เกิด `unresolved_ref` ในเอาต์พุตของ `models status --probe`

## การกรองลำดับการยืนยันตัวตนแบบระบุชัดเจน

- เมื่อมีการตั้งค่า `auth.order.<provider>` หรือการแทนที่ลำดับ auth-store สำหรับ
  provider ใด provider หนึ่ง `models status --probe` จะ probe เฉพาะ profile id ที่ยังคงอยู่ใน
  ลำดับการยืนยันตัวตนที่ถูกกำหนดแล้วสำหรับ provider นั้น
- โปรไฟล์ที่จัดเก็บไว้สำหรับ provider นั้นซึ่งถูกละออกจากลำดับที่ระบุชัดเจน
  จะไม่ถูกลองใช้งานภายหลังแบบเงียบ ๆ เอาต์พุตของ probe จะรายงานด้วย
  `reasonCode: excluded_by_auth_order` และรายละเอียด
  `Excluded by auth.order for this provider.`

## การกำหนดเป้าหมายการ probe

- เป้าหมายการ probe อาจมาจากโปรไฟล์การยืนยันตัวตน ข้อมูลรับรองจาก environment หรือ
  `models.json`
- หาก provider มีข้อมูลรับรอง แต่ OpenClaw ไม่สามารถกำหนดตัวเลือกโมเดลที่สามารถ probe ได้
  สำหรับ provider นั้น `models status --probe` จะรายงาน `status: no_model` พร้อม
  `reasonCode: no_model`

## ตัวป้องกันนโยบาย OAuth SecretRef

- อินพุต SecretRef ใช้สำหรับข้อมูลรับรองแบบคงที่เท่านั้น
- หากข้อมูลรับรองของโปรไฟล์เป็น `type: "oauth"` จะไม่รองรับออบเจ็กต์ SecretRef สำหรับวัสดุข้อมูลรับรองของโปรไฟล์นั้น
- หาก `auth.profiles.<id>.mode` เป็น `"oauth"` อินพุต `keyRef`/`tokenRef` ที่รองรับด้วย SecretRef สำหรับโปรไฟล์นั้นจะถูกปฏิเสธ
- การละเมิดจะเป็นความล้มเหลวแบบรุนแรงในเส้นทางการกำหนด auth ระหว่างการเริ่มต้น/รีโหลด

## ข้อความที่เข้ากันได้กับระบบเดิม

เพื่อให้เข้ากันได้กับสคริปต์ ข้อผิดพลาดของ probe จะคงบรรทัดแรกนี้ไว้โดยไม่เปลี่ยนแปลง:

`Auth profile credentials are missing or expired.`

สามารถเพิ่มรายละเอียดที่อ่านเข้าใจได้ง่ายสำหรับมนุษย์และรหัสเหตุผลแบบคงที่ในบรรทัดถัดไปได้

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

- [การจัดการ Secrets](/th/gateway/secrets)
- [การจัดเก็บข้อมูลการยืนยันตัวตน](/th/concepts/oauth)
