การลงชื่อเข้าใช้ด้วย ChatGPT คือระบบลงชื่อเข้าใช้ OAuth 2.0 และ OpenID Connect ของ OpenAI ที่พร้อมใช้งานสำหรับผู้ใช้ ChatGPT ทั่วโลก แอปของคุณจะได้รับ ID บัญชีที่เสถียร พร้อมด้วยชื่อ ที่อยู่อีเมล และรูปโปรไฟล์ของผู้ใช้ ตั้งแต่ DevDay เมื่อวันที่ 29 กันยายน 2026 ผู้ใช้ Plus และ Pro ยังสามารถอนุญาตให้แอปที่เข้าร่วมรันคำขอ AI บนแผน ChatGPT ของตน แทนการใช้คีย์ API ของคุณ ภายใต้ขีดจำกัดรายสัปดาห์ที่พวกเขากำหนดต่อแอปได้ แอปของคุณจะไม่ได้รับบทสนทนา ความทรงจำ หรือคีย์ API ของผู้ใช้เลย
ส่วนที่สองนี้เกี่ยวข้องกับค่าใช้จ่ายของคุณ คู่มือนี้ครอบคลุมขั้นตอนการทำงาน วิธีที่ผู้ใช้จะเห็นการใช้งานแผน ใครสามารถรวมระบบได้ในวันนี้ เมื่อใดที่แผนของผู้ใช้ควรจะมาแทนที่คีย์ของคุณ และวิธีทดสอบการลงชื่อเข้าใช้และเส้นทางความล้มเหลวใน Apidog สำหรับข้อมูลเพิ่มเติมเกี่ยวกับงานนี้ โปรดดูที่ สรุปงาน DevDay 2026; หากคุณยังไม่เข้าใจความแตกต่างระหว่าง Identity กับ Authorization โปรดอ่าน OAuth vs OpenID ก่อน
ภาพรวมการลงชื่อเข้าใช้ด้วย ChatGPT
| รายการ | สิ่งที่เอกสาร OpenAI ระบุ |
|---|---|
| ขอบเขตการระบุตัวตน | openid profile email |
| ขอบเขตการใช้งานแผน (สำหรับโอเพนซอร์ส) | offline_access resource.invoke chatgpt.tokens.use.direct, พร้อม resource=https://api.openai.com/v1 |
| สิ่งที่แอปของคุณได้รับ | ID token; และหากมีการใช้งานแผน จะได้รับ access token และ refresh token |
| คุณสมบัติในการใช้งานแผน | ผู้ใช้ Plus และ Pro ในแอปที่เข้าร่วม |
| ที่ที่การใช้งานถูกนับ | การใช้งาน ChatGPT Work และ Codex ของแผน |
| การควบคุมต่อแอป | ขีดจำกัดรายสัปดาห์เป็นสัดส่วนของการใช้งานโดยรวมรายสัปดาห์; เครดิตหลังเกินขีดจำกัดจะถูกปิดโดยค่าเริ่มต้น |
| โทเค็นสำหรับการใช้งานแผน | Access token มีอายุ 1 ชั่วโมง; refresh token มีอายุ 30 วัน และจะถูกแทนที่เมื่อมีการรีเฟรชแต่ละครั้ง |
| การเข้าถึงของนักพัฒนา | แอปเชิงพาณิชย์: ทดลองแบบจำกัดผ่านแบบฟอร์มแสดงความสนใจ แอปโอเพนซอร์ส: บริการตนเอง |
แหล่งที่มา: เอกสารประกอบการลงชื่อเข้าใช้ด้วย ChatGPT, เอกสารอ้างอิงโทเค็น, และบทความช่วยเหลือของ OpenAI เกี่ยวกับการ ใช้แผน ChatGPT ของคุณในแอปอื่น ๆ
สิ่งที่แอปของคุณได้รับ และสิ่งที่ไม่ได้รับ
การระบุตัวตนคือค่าเริ่มต้น ไคลเอนต์ที่ร้องขอ openid profile email จะได้รับ ID token ตาม คู่มือเว็บไซต์ profile ครอบคลุมการอ้างสิทธิ์ที่มีอยู่ เช่น ชื่อและรูปโปรไฟล์ และ email ครอบคลุมการอ้างสิทธิ์อีเมลและการยืนยันอีเมล ขอบเขตการระบุตัวตนไม่ได้ให้สิทธิ์การเข้าถึงบทสนทนา ChatGPT หรือทรัพยากร OpenAI API
ให้ใช้บัญชีโดยอิงจาก sub ที่ยืนยันแล้ว รวมถึงผู้ออกและ Client ID ไม่ใช่อีเมล OpenAI เตือนว่าการจับคู่อีเมลเพียงอย่างเดียวไม่ใช่หลักฐานยืนยันความเป็นเจ้าของ ดังนั้นควรขอให้ผู้ใช้ปัจจุบันยืนยันการเชื่อมโยง
การใช้งานแผนเป็นสิทธิ์ที่แยกต่างหาก หากผู้ใช้อนุมัติขอบเขตเพิ่มเติม การตอบกลับโทเค็นจะเพิ่ม access token สำหรับคำขอ Responses API ที่มีสิทธิ์ ไคลเอนต์ที่ระบุตัวตนเท่านั้นไม่ควรร้องขอ access_token เลย: id_token เป็นสิ่งประดิษฐ์เดียวที่จำเป็น
วิธีการทำงานของ OAuth flow
เว็บไซต์ flow คือ Authorization Code grant with PKCE มาตรฐานพร้อม OIDC โหลดเอนด์พอยต์จาก https://auth.openai.com/.well-known/openid-configuration เอกสารประกอบแสดงค่าการใช้งานจริงดังนี้:
Issuer: https://auth.openai.com
Authorization endpoint: https://auth.openai.com/api/accounts/authorize
Token endpoint: https://auth.openai.com/api/accounts/oauth/token
JWKS URI: https://auth.openai.com/.well-known/jwks.json
- แบ็กเอนด์ของคุณสร้าง
stateใหม่, ตัวตรวจสอบ PKCE พร้อม S256 challenge, และnonce - มันเปลี่ยนเส้นทางเบราว์เซอร์ไปยังเอนด์พอยต์การอนุญาตพร้อม Client ID, Redirect URI ที่แน่นอน และขอบเขตของคุณ
- ผู้ใช้ให้ความยินยอม และ OpenAI จะส่งคืนโค้ดไปยัง Callback ของคุณ
- แบ็กเอนด์ของคุณตรวจสอบ
state, แลกเปลี่ยนโค้ด และยืนยันลายเซ็น, ผู้ออก, ผู้รับ, วันหมดอายุ และ nonce ของ ID token - มันจะค้นหา สร้าง หรือเชื่อมโยงบัญชีภายในและออกเซสชันของตัวเอง
ไคลเอนต์สาธารณะไม่ส่ง secret ไคลเอนต์ที่เป็นความลับที่ใช้ client_secret_basic จะส่ง secret เฉพาะในส่วนหัว HTTP Basic เท่านั้น
เครื่องมือโอเพนซอร์สลงทะเบียนต่างกัน คู่มือการลงชื่อเข้าใช้สำหรับโอเพนซอร์ส เริ่มต้นด้วย client_id=dynamic_agent_client, agent_name_hint ที่ตั้งชื่อตามแอปของคุณ และ ext_agent_host_id แบบถาวรต่อโฮสต์ Callback จะส่งคืน Client ID ที่ออกให้ (เช่น oaiapp_...) เพื่อบันทึกและนำกลับมาใช้ใหม่; การเปลี่ยนเส้นทางคือ Loopback URI 127.0.0.1 และไม่มี Client Secret เกี่ยวข้อง
การใช้งานแผนทำงานอย่างไรสำหรับผู้ใช้
สิ่งที่ผู้ใช้ของคุณเห็น และสิ่งที่เอกสารสนับสนุนของคุณควรอธิบาย:
- คำขอที่มีสิทธิ์จะถูกนับรวมในแผน พวกเขาจะใช้โควต้าการใช้งาน ChatGPT Work และ Codex ในแผน Plus หรือ Pro ของผู้ใช้
- แต่ละแอปมีขีดจำกัดรายสัปดาห์ ผู้ใช้จะกำหนดเป็นเปอร์เซ็นต์ของการใช้งานรวมรายสัปดาห์ (ตัวอย่างการตั้งค่าในเอกสารอยู่ที่ 10% ถึง 100%) มันคือเพดาน ไม่ใช่กลุ่มทรัพยากรสำรอง ดังนั้นการใช้งานหนักที่อื่นอาจทำให้แผนหมดก่อน
- เครดิตเป็นแบบเลือกใช้ การใช้งานต่อด้วยเครดิตหลังจากขีดจำกัดถูกปิดโดยค่าเริ่มต้นและต้องตั้งค่าขีดจำกัดของแอปไว้ที่ 100%
- แผน Plus มีขีดจำกัดรวมห้าชั่วโมง ตาม หน้าบัญชีและเซสชัน ซึ่งครอบคลุมทุกแอปที่ใช้แผนนี้ ไม่ใช้กับ Pro
- การตัดการเชื่อมต่อจะหยุดการใช้งานในอนาคต มันไม่ย้อนกลับการใช้งานที่ใช้ไปแล้ว และ OpenAI จะไม่แจ้งเตือนแอปของคุณ; คุณจะรู้เมื่อคำขอหรือการรีเฟรชล้มเหลว
ผู้ใช้จัดการทั้งหมดนี้ภายใต้การตั้งค่า ChatGPT, การใช้งาน (chatgpt.com/settings/usage) และ แนวทาง UI ของ OpenAI ขอให้คุณเชื่อมโยงไปที่นั่นด้วย จัดการการใช้งาน
ใครบ้างที่เปิดตัว และคุณจะได้รับ Client ID ได้อย่างไร
สรุปงาน DevDay ของ OpenAI ระบุพันธมิตรผู้ใช้งานแผน 16 ราย ได้แก่ Devin ของ Cognition, Notion, Vercel, T3, OpenClaw และ Dactyl The New Stack ระบุ Amp, Warp, Kilo Code และ OpenCode เป็นรายอื่น ๆ โดยมี Lovable กำหนดไว้ว่าจะมาในเร็ว ๆ นี้ หากคุณใช้งาน OpenClaw จะอยู่ในทั้งสองรายการ
Sam Altman กล่าวบนเวที ตามที่ The New Stack รายงาน: “ตอนนี้คุณไม่จำเป็นต้องรับผิดชอบค่าใช้จ่ายโทเค็นเพื่อให้พวกเขาใช้งานได้”
วิธีที่คุณจะเข้าร่วมขึ้นอยู่กับสิ่งที่คุณส่งมอบ:
- แอปเชิงพาณิชย์หรือโฮสต์: การลงชื่อเข้าใช้เป็นการทดลองแบบจำกัด คุณสามารถ ร้องขอ Client ID โดยเข้าร่วมรายการรอผ่านแบบฟอร์มแสดงความสนใจของ OpenAI ไม่ว่าคุณจะต้องการเพียงแค่การระบุตัวตน หรือการใช้งานแผนด้วย (URL ในเอกสารเรียกว่าการใช้งานแผนว่า “การแบ่งปันโทเค็น”)
- เครื่องมือโอเพนซอร์สและโฮสต์ในเครื่อง: การใช้งานแผนเปิดให้พันธมิตรโอเพนซอร์สทั้งหมดผ่าน Flow บริการตนเองด้านบน
อะไรจะเปลี่ยนไปสำหรับค่า API ของคุณ
วันนี้คุณจ่ายค่าบริการเป็นโทเค็นและเรียกคืนผ่านการกำหนดราคา การใช้งานแผนจะย้ายต้นทุนโมเดลไปอยู่ในการสมัครสมาชิกของผู้ใช้ ดังนั้นกำไรของคุณจึงไม่ขึ้นอยู่กับการใช้งาน AI ของผู้ใช้หนักแค่ไหน สิ่งที่ต้องแลกคือการควบคุม
| คีย์ API ของคุณ | แผน ChatGPT ของผู้ใช้ | |
|---|---|---|
| ใครจ่าย | คุณ, ตามจำนวนโทเค็น | แผนของผู้ใช้ (เครดิตเฉพาะเมื่อเลือกใช้เท่านั้น) |
| ใครใช้ได้ | ผู้ใช้ทุกคน | ผู้ใช้ Plus และ Pro ที่ให้สิทธิ์ chatgpt.tokens.use.direct |
| ขีดจำกัด | ระดับ Rate-limit ของคุณ | การใช้งานแผนรายสัปดาห์, ขีดจำกัดต่อแอป, หน้าต่างเวลาห้าชั่วโมงของ Plus |
| รูปแบบคำขอ | Responses API เต็มรูปแบบ | ต้องมี store: false และ stream: true; ไม่มี temperature, max_output_tokens, การค้นหาไฟล์ หรือ Code Interpreter |
| ความล้มเหลวทั่วไป | 429 เมื่อคุณเกินระดับของคุณ | 429 subscription_sharing_usage_limit_exceeded หรือโค้ดนั้นใน response.failed ระหว่างสตรีม |
| ทางเลือกสำรอง | คุณเป็นผู้ออกแบบ | ไม่มีอัตโนมัติ: OpenAI ไม่เปลี่ยนการเรียกเก็บเงิน |
| สิ่งที่ต้องแสดง | การใช้งานและการกำหนดราคาของคุณเอง | “กำลังใช้แผน ChatGPT”, ลิงก์จัดการการใช้งาน, แผนของคุณใดบ้างที่รองรับ |
ข้อจำกัดมาจาก หน้าข้อจำกัดการดูตัวอย่าง: คุณสมบัติที่ต้องการสถานะการสนทนาที่จัดเก็บไว้หรือเครื่องมือที่โฮสต์ไว้จะไม่สามารถทำงานบนแผนของผู้ใช้ได้ในวันนี้
ค่าเริ่มต้นที่เหมาะสมคือแบบไฮบริด: การใช้งานแผนสำหรับงานแบบโต้ตอบโดยผู้ใช้ Plus และ Pro, คีย์ของคุณสำหรับคนอื่น ๆ ทั้งหมด และสำหรับงานเบื้องหลัง, CI และตัวแทนที่กำหนดเวลาไว้ เมื่อถึงขีดจำกัด ให้แสดงจัดการการใช้งานและเสนอเครดิตของคุณเองเป็นทางเลือกสำรอง การเปรียบเทียบ API key vs OAuth ครอบคลุมการแลกเปลี่ยนทั่วไป และ OAuth สำหรับ AI agents ครอบคลุมการดำเนินการในนามของผู้ใช้อย่างปลอดภัย
วิธีทดสอบ Flow การลงชื่อเข้าใช้และเส้นทางความล้มเหลวใน Apidog
Apidog ไม่ได้ลงชื่อเข้าใช้ใครด้วย ChatGPT มันทดสอบการตั้งค่า OAuth, การเรียกโทเค็น และการจัดการข้อผิดพลาดของคุณ ดาวน์โหลด Apidog และสร้างสภาพแวดล้อม
1. จัดเก็บไคลเอนต์เป็นตัวแปร เพิ่ม SIWC_CLIENT_ID, SIWC_REDIRECT_URI และสำหรับไคลเอนต์ที่เป็นความลับ SIWC_CLIENT_SECRET เป็นค่าที่ละเอียดอ่อน รวมถึง ACCESS_TOKEN สำหรับการใช้งานแผน อ้างอิงถึงสิ่งเหล่านี้เป็น {{SIWC_CLIENT_ID}} เพื่อไม่ให้ความลับปรากฏในคำขอที่บันทึกไว้
2. รัน Authorization Code flow ในแท็บ Auth เลือก OAuth 2.0 พร้อม Authorization Code with PKCE ป้อนเอนด์พอยต์ด้านบน ตั้งค่าขอบเขตเป็น openid profile email และใช้ Callback URL ที่ลงทะเบียนไว้สำหรับไคลเอนต์ของคุณ คู่มือ Apidog OAuth 2.0 จะอธิบายแต่ละฟิลด์
3. ยืนยัน ID token ที่คุณได้รับ บันทึกการแลกเปลี่ยนโทเค็นเป็นการร้องขอ POST ของตัวเองไปยังเอนด์พอยต์โทเค็น (โค้ด, verifier, redirect URI, client ID) และเพิ่ม post-processor ให้กับมัน การตรวจสอบลายเซ็นและ nonce ยังคงอยู่ในแบ็กเอนด์ของคุณ
const body = pm.response.json();
pm.test("token exchange returned an ID token", () => {
pm.expect(pm.response.code).to.eql(200);
pm.expect(body.id_token).to.be.a("string");
});
const decode = require("atob");
const part = body.id_token.split(".")[1].replace(/-/g, "+").replace(/_/g, "/");
const claims = JSON.parse(decode(part + "=".repeat((4 - (part.length % 4)) % 4)));
pm.test("ID token claims match this client", () => {
pm.expect(claims.iss).to.eql("https://auth.openai.com");
pm.expect(claims.aud).to.include(pm.environment.get("SIWC_CLIENT_ID"));
pm.expect(claims.sub).to.be.a("string").and.not.empty;
pm.expect(claims.exp * 1000).to.be.above(Date.now());
});
บันทึก name, email และ picture แทนที่จะยืนยัน เพราะจะถูกส่งกลับมาเมื่อมี สำหรับการใช้งานแผน ให้ยืนยันว่า body.scope มี chatgpt.tokens.use.direct
4. จำลองเส้นทางความล้มเหลว บัญชี Plus จริงไม่ใช่ตัวอย่างที่ดี ดังนั้นให้ส่งคืนสิ่งเหล่านี้จาก Apidog mock server:
- การใช้งานแผนถูกปฏิเสธ: การตอบกลับโทเค็นที่
scopeไม่มีchatgpt.tokens.use.directแอปของคุณควรคงการลงชื่อเข้าใช้ไว้และเสนอให้เปิดใช้งานการใช้งานแผนหรือใช้เส้นทางการเรียกเก็บเงินอื่น - ถึงขีดจำกัด: 429 พร้อม
error.codesubscription_sharing_usage_limit_exceededหรือโค้ดนั้นในresponse.failedระหว่างสตรีม ยืนยันว่าแอปของคุณหยุดคำขอแผน - ไม่มีสิทธิ์: 403
subscription_sharing_user_not_eligibleห้ามลองใหม่หรือวนซ้ำผ่าน OAuth - ตัดการเชื่อมต่อ: การรีเฟรชที่ส่งคืน
invalid_grantหรือ 401subscription_sharing_invalid_userล้างโทเค็นและขอให้ลงชื่อเข้าใช้อีกครั้ง
เชื่อมโยงกรณีต่างๆ เข้าด้วยกันเป็นสถานการณ์การทดสอบและรันใน CI ด้วย Apidog CLI หน้าข้อผิดพลาดและการกู้คืน แสดงรายการทั้งหมด
5. ตรวจสอบการเรียกใช้จริง ด้วยโทเค็นแผนจริง ส่งคำขอสตรีมมิ่งของเอกสาร (ใน Apidog, เป็น Bearer {{ACCESS_TOKEN}}) และยืนยันว่าสตรีมสิ้นสุดด้วย response.completed ซึ่งเป็นสัญญาณความสำเร็จเดียว:
curl --no-buffer https://api.openai.com/v1/responses \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6.1-sol",
"input": [{"role": "user", "content": "Say exactly: Hello, world!"}],
"store": false,
"stream": true
}'
คำถามที่พบบ่อย
ผู้ใช้ Free สามารถลงชื่อเข้าใช้ด้วย ChatGPT ได้หรือไม่? การลงชื่อเข้าใช้มีให้สำหรับผู้ใช้ ChatGPT ทั่วโลก การใช้แผนภายในแอปอื่นต้องใช้ Plus หรือ Pro
แอปของฉันได้รับคีย์ OpenAI API ของผู้ใช้หรือไม่? ไม่ คุณจะได้รับ ID token และ หากมีการใช้งานแผน จะได้รับ OAuth access token สำหรับคำขอ Responses API ที่มีสิทธิ์
จะเกิดอะไรขึ้นเมื่อผู้ใช้ถึงขีดจำกัด? คำขอจะล้มเหลวด้วย subscription_sharing_usage_limit_exceeded: ซึ่งเป็น HTTP 429 หรือเหตุการณ์ response.failed หลังจากเริ่มสตรีม หยุดชั่วคราวและเชื่อมโยงไปยังจัดการการใช้งาน
ผู้ใช้ Plus สามารถรัน GPT-6.1 Sol ผ่านแอปพันธมิตรได้หรือไม่? ตัวอย่างในเอกสารใช้ gpt-6.1-sol พร้อมโทเค็นแผน แต่ให้แสดงรายการโมเดลของบัญชีด้วยโทเค็นนั้นก่อนที่จะเสนอให้ใช้งาน ดูเพิ่มเติมใน GPT-6.1 Sol ฟรีหรือไม่
ขั้นตอนต่อไป
หากคุณใช้งานแอปเชิงพาณิชย์ ให้เข้าร่วมรายการรอตอนนี้ และสร้างการจัดการขีดจำกัดและการตัดการเชื่อมต่อของคุณเทียบกับ Mocks ในขณะที่รอ ถือว่าการใช้งานแผนเป็นทางเลือกหนึ่งนอกเหนือจากการเรียกเก็บเงิน API ของคุณเอง ไม่ใช่การทดแทน บันทึกการยืนยันโทเค็นและสถานการณ์ความล้มเหลวใน Apidog เพื่อที่วันที่ Client ID ของคุณมาถึง ตัวแปรใหม่เพียงอย่างเดียวคือโทเค็นจริง
