{"slug": "login-chatgpt-untuk-developer-panduan-alur-oauth-manajemen-penggunaan-paket-dan", "title": "Login ChatGPT untuk Developer: Panduan Alur OAuth, Manajemen Penggunaan Paket, dan Dampak Biaya API Anda", "summary": "OpenAI's Sign in with ChatGPT, an OAuth 2.0 and OpenID Connect login available to ChatGPT users worldwide, now lets participating apps run AI requests against a user's Plus or Pro plan instead of the developer's own API key, subject to per-app weekly limits the user sets. The identity scopes `openid profile email` return only an ID token with account ID, name, email and profile picture, while plan usage requires the separate scopes `offline_access resource.invoke chatgpt.tokens.use.direct` with `resource=https://api.openai.com/v1`, yielding a 1-hour access token and a 30-day rotating refresh token. Commercial apps get limited beta access via an interest form, while open-source apps can self-serve.", "body_md": "Masuk dengan ChatGPT adalah login OAuth 2.0 dan OpenID Connect milik OpenAI yang tersedia bagi pengguna ChatGPT di seluruh dunia. Aplikasi Anda mendapatkan ID akun yang stabil, serta nama, alamat email, dan gambar profil pengguna. Sejak DevDay pada 29 September 2026, pengguna Plus dan Pro juga dapat mengizinkan aplikasi yang berpartisipasi menjalankan permintaan AI pada paket ChatGPT mereka, bukan menggunakan kunci API Anda, dengan batas mingguan yang mereka tetapkan per aplikasi. Aplikasi Anda tidak pernah menerima percakapan, memori, atau kunci API pengguna.\n\nBagian ini berfokus pada dampak tagihan. Anda akan mempelajari alur OAuth, cara penggunaan paket terlihat bagi pengguna, kelayakan integrasi, kapan paket pengguna dapat menggantikan kunci API Anda, serta cara menguji alur masuk dan kegagalan di [Apidog](https://apidog.com?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation). Untuk konteks acara, baca [rangkuman DevDay 2026](https://apidog.com/id/blog/openai-devday-2026?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation). Jika perbedaan identitas dan otorisasi belum jelas, mulai dari [OAuth vs OpenID](https://apidog.com/id/blog/oauth-vs-openid?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation).\n\n| Item | Yang didokumentasikan OpenAI | \n|---|---|\n| Cakupan identitas | `openid profile email` | \n| Cakupan penggunaan paket (alur sumber terbuka) | `offline_access resource.invoke chatgpt.tokens.use.direct` , dengan`resource=https://api.openai.com/v1` | \n| Yang diterima aplikasi Anda | Token ID; untuk penggunaan paket, token akses dan token refresh | \n| Kelayakan penggunaan paket | Plus dan Pro, pada aplikasi yang berpartisipasi | \n| Di mana penggunaan dihitung | Penggunaan ChatGPT Work dan Codex pada paket | \n| Kontrol per aplikasi | Batas mingguan sebagai bagian dari total penggunaan mingguan; kredit setelah batas dinonaktifkan secara default | \n| Token penggunaan paket | Token akses 1 jam; token refresh 30 hari dan diganti setiap kali refresh | \n| Akses pengembang | Aplikasi komersial: uji coba terbatas melalui formulir minat. Aplikasi sumber terbuka: layanan mandiri | \n\nSumber: dokumen [Masuk dengan ChatGPT](https://developers.openai.com/siwc), [referensi token](https://developers.openai.com/siwc/token-sharing-open-source/token-reference), dan artikel bantuan OpenAI tentang [menggunakan paket ChatGPT Anda di aplikasi lain](https://help.openai.com/en/articles/20001542-using-your-chatgpt-plan-in-other-apps-and-sites).\n\nIdentitas adalah kemampuan default. Klien yang meminta cakupan `openid profile email` mendapatkan token ID. Menurut [panduan situs web](https://developers.openai.com/siwc/website), cakupan `profile` dapat memberikan klaim seperti nama dan gambar profil, sedangkan `email` dapat memberikan klaim email dan status verifikasi email.\n\nCakupan identitas tidak memberikan akses ke percakapan ChatGPT maupun sumber daya API OpenAI.\n\nGunakan kombinasi `iss`, `aud`, dan `sub` terverifikasi untuk mengidentifikasi akun lokal. Jangan gunakan email sebagai satu-satunya kunci akun. OpenAI memperingatkan bahwa kecocokan email saja bukan bukti kepemilikan akun, jadi pengguna lama harus mengonfirmasi proses penautan akun.\n\nPenggunaan paket adalah hibah terpisah. Jika pengguna menyetujui cakupan tambahan, respons token menyertakan token akses untuk permintaan API Responses yang memenuhi syarat. Jika aplikasi Anda hanya membutuhkan identitas, Anda tidak memerlukan `access_token`; `id_token` sudah cukup.\n\nAlur situs web menggunakan [Authorization Code grant dengan PKCE](https://apidog.com/id/blog/oauth-2-flows?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation) dan OIDC.\n\nMuat metadata provider dari:\n\n```\nhttps://auth.openai.com/.well-known/openid-configuration\n```\n\nNilai produksi yang didokumentasikan:\n\n```\nIssuer:                 https://auth.openai.com\nAuthorization endpoint: https://auth.openai.com/api/accounts/authorize\nToken endpoint:         https://auth.openai.com/api/accounts/oauth/token\nJWKS URI:               https://auth.openai.com/.well-known/jwks.json\n```\n\nImplementasikan alur berikut di backend:\n\n`state`, PKCE verifier dengan challenge `S256`, dan `nonce` baru.`client_id`, `redirect_uri`, dan scope yang sesuai.` iss`, `aud`, `exp`, dan Klien publik tidak boleh mengirim client secret. Klien rahasia yang menggunakan `client_secret_basic` hanya boleh mengirim secret melalui header HTTP Basic.\n\nUntuk alat sumber terbuka, proses pendaftarannya berbeda. Panduan [masuk sumber terbuka](https://developers.openai.com/siwc/token-sharing-open-source/sign-in) menggunakan:\n\n`client_id=dynamic_agent_client`` agent_name_hint` berisi nama aplikasi Anda`ext_agent_host_id` yang persisten untuk setiap host\nCallback mengembalikan ID klien yang diterbitkan, misalnya `oaiapp_...`. Simpan ID tersebut dan gunakan kembali pada login berikutnya. URI pengalihan menggunakan loopback `127.0.0.1`, tanpa client secret.\n\nDokumentasi dan UI aplikasi Anda perlu menjelaskan hal berikut.\n\nPengguna mengelola pengaturan melalui Pengaturan ChatGPT, Penggunaan (`chatgpt.com/settings/usage`). [Panduan UI OpenAI](https://developers.openai.com/siwc/ui-ux-guidelines) meminta aplikasi menautkan pengguna ke halaman tersebut melalui tombol atau tautan **Kelola penggunaan**.\n\n[Rangkuman DevDay](https://openai.com/index/devday-2026-recap/) OpenAI menyebut 16 mitra penggunaan paket, termasuk Devin dari Cognition, Notion, Vercel, T3, OpenClaw, dan Dactyl. [The New Stack](https://thenewstack.io/sign-in-with-chatgpt/) juga mencantumkan Amp, Warp, Kilo Code, dan OpenCode, dengan Lovable ditandai sebagai “segera hadir”.\n\nJika Anda menjalankan [OpenClaw](https://apidog.com/id/blog/openclaw-free?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation), proyek tersebut muncul di kedua daftar.\n\nSeperti dilaporkan The New Stack, Sam Altman menyampaikan: “sekarang Anda tidak perlu menanggung biaya token mereka untuk memulai.”\n\nCara bergabung bergantung pada jenis aplikasi Anda:\n\nDengan kunci API sendiri, Anda membayar per token dan biasanya memulihkan biaya melalui harga produk. Dengan penggunaan paket, biaya model berpindah ke langganan pengguna. Margin Anda tidak lagi bergantung langsung pada jumlah token yang digunakan pengguna, tetapi Anda kehilangan sebagian kontrol atas ketersediaan kuota.\n\n|  | Kunci API Anda | Paket ChatGPT pengguna | \n|---|---|---|\n| Siapa yang membayar | Anda, per token | Paket pengguna; kredit hanya jika pengguna memilihnya | \n| Siapa yang dapat menggunakannya | Setiap pengguna | Pengguna Plus dan Pro yang memberikan `chatgpt.tokens.use.direct` | \n| Batasan | Rate limit akun API Anda | Penggunaan mingguan paket, batas per aplikasi, dan jendela lima jam Plus | \n| Bentuk permintaan | API Responses penuh | Wajib `store: false` dan`stream: true` ; tidak mendukung`temperature` ,`max_output_tokens` , pencarian file, atau Code Interpreter | \n| Kegagalan umum | HTTP 429 saat melampaui tier | 429 `subscription_sharing_usage_limit_exceeded` , atau kode yang sama dalam`response.failed` saat streaming | \n| Cadangan | Anda yang merancang | Tidak otomatis; OpenAI tidak mengganti metode penagihan | \n| Yang perlu ditampilkan | Penggunaan dan harga Anda | “Menggunakan paket ChatGPT”, tautan Kelola penggunaan, dan paket yang didukung | \n\nPembatasan ini berasal dari [halaman batasan pratinjau](https://developers.openai.com/siwc/token-sharing-open-source/preview-limitations): fitur yang memerlukan status percakapan tersimpan atau alat yang di-host belum berjalan pada paket pengguna.\n\nKonfigurasi yang praktis adalah model hibrida:\n\nLihat juga [perbandingan Kunci API vs OAuth](https://apidog.com/id/blog/api-key-vs-oauth?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation) dan [OAuth untuk agen AI](https://apidog.com/id/blog/ai-agent-oauth-on-behalf-of-user?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation).\n\nApidog tidak melakukan login dengan ChatGPT untuk Anda. Gunakan Apidog untuk menguji konfigurasi OAuth, pertukaran token, request API, dan penanganan error.\n\n[Unduh Apidog](https://apidog.com/download?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation), lalu buat environment khusus untuk integrasi ini.\n\nTambahkan variabel environment berikut sebagai nilai sensitif:\n\n```\nSIWC_CLIENT_ID\nSIWC_REDIRECT_URI\nSIWC_CLIENT_SECRET\nACCESS_TOKEN\n```\n\n`SIWC_CLIENT_SECRET` hanya diperlukan untuk klien rahasia. Referensikan nilai dengan sintaks seperti:\n\n```\n{{SIWC_CLIENT_ID}}\n```\n\nDengan begitu, secret tidak tersimpan langsung dalam koleksi request.\n\nPada tab **Auth**:\n\n```\n   openid profile email\n```\n\nUntuk panduan konfigurasi setiap field, lihat [panduan OAuth 2.0 Apidog](https://apidog.com/id/blog/test-oauth-2-apis-apidog?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation).\n\nSimpan pertukaran token sebagai request `POST` terpisah ke token endpoint. Kirim authorization code, PKCE verifier, redirect URI, dan client ID.\n\nTambahkan post-processor berikut untuk memeriksa respons dasar:\n\n``` js\nconst body = pm.response.json();\n\npm.test(\"token exchange returned an ID token\", () => {\n  pm.expect(pm.response.code).to.eql(200);\n  pm.expect(body.id_token).to.be.a(\"string\");\n});\n\nconst decode = require(\"atob\");\nconst part = body.id_token\n  .split(\".\")[1]\n  .replace(/-/g, \"+\")\n  .replace(/_/g, \"/\");\n\nconst claims = JSON.parse(\n  decode(part + \"=\".repeat((4 - (part.length % 4)) % 4))\n);\n\npm.test(\"ID token claims match this client\", () => {\n  pm.expect(claims.iss).to.eql(\"https://auth.openai.com\");\n  pm.expect(claims.aud).to.include(pm.environment.get(\"SIWC_CLIENT_ID\"));\n  pm.expect(claims.sub).to.be.a(\"string\").and.not.empty;\n  pm.expect(claims.exp * 1000).to.be.above(Date.now());\n});\n```\n\nJangan membuat assertion wajib untuk `name`, `email`, atau `picture`, karena klaim tersebut hanya tersedia jika dikembalikan provider. Catat nilainya untuk inspeksi.\n\nUntuk penggunaan paket, pastikan `body.scope` memuat:\n\n```\nchatgpt.tokens.use.direct\n```\n\nValidasi tanda tangan JWT dan `nonce` tetap harus dilakukan oleh backend Anda.\n\nAkun Plus asli tidak cocok untuk menguji seluruh kasus kegagalan. Gunakan mock server Apidog untuk mengembalikan respons berikut.\n\n`scope` tanpa `chatgpt.tokens.use.direct`. Aplikasi harus tetap mempertahankan sesi login dan menawarkan aktivasi penggunaan paket atau jalur penagihan lain.`error.code` bernilai `subscription_sharing_usage_limit_exceeded`. Simulasikan juga kode yang sama dalam event streaming `response.failed`. Aplikasi harus menghentikan request paket.` subscription_sharing_user_not_eligible`. Jangan melakukan retry atau membuat loop OAuth.` invalid_grant`, atau API mengembalikan HTTP 401 dengan `subscription_sharing_invalid_user`. Hapus token lokal dan minta pengguna login kembali.\nRangkai kasus ini menjadi skenario pengujian dan jalankan pada CI menggunakan Apidog CLI. [Halaman kesalahan dan pemulihan](https://developers.openai.com/siwc/token-sharing-open-source/errors-and-recovery) memuat daftar error lengkap.\n\nDengan token paket asli, kirim request streaming ke API Responses. Di Apidog, gunakan:\n\n```\nBearer {{ACCESS_TOKEN}}\n```\n\nRequest harus berakhir dengan `response.completed`, yang merupakan satu-satunya sinyal keberhasilan.\n\n```\ncurl --no-buffer https://api.openai.com/v1/responses \\\n  -H \"Authorization: Bearer ${ACCESS_TOKEN}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"gpt-6.1-sol\",\n    \"input\": [{\"role\": \"user\", \"content\": \"Say exactly: Hello, world!\"}],\n    \"store\": false,\n    \"stream\": true\n  }'\n```\n\n**Bisakah pengguna Gratis masuk dengan ChatGPT?**\n\nYa. Masuk dengan ChatGPT tersedia bagi pengguna ChatGPT secara global. Namun, penggunaan paket di aplikasi lain memerlukan Plus atau Pro.\n\n**Apakah aplikasi saya mendapatkan kunci API OpenAI pengguna?**\n\nTidak. Aplikasi menerima token ID dan, jika penggunaan paket disetujui, token akses OAuth untuk request API Responses yang memenuhi syarat.\n\n**Apa yang terjadi ketika pengguna mencapai batas penggunaan?**\n\nRequest gagal dengan `subscription_sharing_usage_limit_exceeded`: sebagai HTTP 429, atau event `response.failed` jika streaming sudah dimulai. Hentikan proses dan tampilkan tautan **Kelola penggunaan**.\n\n**Bisakah pengguna Plus menjalankan GPT-6.1 Sol melalui aplikasi mitra?**\n\nContoh dokumentasi menggunakan `gpt-6.1-sol` dengan token paket. Namun, daftar model yang tersedia harus diperiksa dengan token akun tersebut sebelum model ditawarkan di aplikasi. Baca juga [apakah GPT-6.1 Sol gratis](https://apidog.com/id/blog/gpt-6-1-sol-free?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation).\n\nJika Anda menjalankan aplikasi komersial, bergabunglah dengan daftar tunggu dan mulai bangun penanganan batas serta pemutusan akses menggunakan mock sekarang. Perlakukan penggunaan paket sebagai opsi tambahan di samping penagihan API Anda, bukan pengganti langsung.\n\nSimpan assertion token dan skenario kegagalan di [Apidog](https://apidog.com?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation). Saat ID klien Anda tersedia, variabel baru yang perlu diuji hanyalah token asli.", "url": "https://wpnews.pro/news/login-chatgpt-untuk-developer-panduan-alur-oauth-manajemen-penggunaan-paket-dan", "canonical_source": "https://dev.to/walse/login-chatgpt-untuk-developer-panduan-alur-oauth-manajemen-penggunaan-paket-dan-dampak-biaya-api-557", "published_at": "2026-10-02 09:57:42+00:00", "updated_at": "2026-10-02 10:07:36.875458+00:00", "lang": "en", "topics": ["ai-products", "ai-tools", "developer-tools", "ai-agents"], "entities": ["OpenAI", "ChatGPT", "Apidog", "DevDay 2026", "Codex"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/login-chatgpt-untuk-developer-panduan-alur-oauth-manajemen-penggunaan-paket-dan", "markdown": "https://wpnews.pro/news/login-chatgpt-untuk-developer-panduan-alur-oauth-manajemen-penggunaan-paket-dan.md", "text": "https://wpnews.pro/news/login-chatgpt-untuk-developer-panduan-alur-oauth-manajemen-penggunaan-paket-dan.txt", "jsonld": "https://wpnews.pro/news/login-chatgpt-untuk-developer-panduan-alur-oauth-manajemen-penggunaan-paket-dan.jsonld"}}