Langsung ke konten utama
POST
Autentikasi adalah fitur baru. Endpoint ini dilayani oleh penerbit aplikasi Anda, misalnya https://<name>.auth.didit.me, dan tidak pernah menerima kunci API Didit Anda.
Token penyegaran hanya dapat digunakan sekali. Jika token penyegaran yang sudah dipakai dikirim lagi, seluruh sesi akan dicabut, jadi jalankan satu proses penyegaran pada satu waktu untuk setiap sesi dan ganti ketiga token sekaligus. Lihat Token penyegaran.

Body

Salah satu dari dua grant, dipilih oleh grant_type. Endpoint menerima kolom dari kedua grant dan memvalidasi setiap kolom yang diterimanya, sehingga refresh yang juga membawa code_verifier dengan format salah akan mendapatkan error kolom. Kirimkan hanya kolom grant Anda; kolom lain akan mendapatkan unknown_field.

grant_type
enum<string>
wajib
Opsi yang tersedia:
authorization_code
code
string
wajib

Parameter kueri code yang diterima redirect_uri Anda. Periksa state callback sebelum Anda menukarnya.

Maximum string length: 128
Contoh:

"Vb0bVt4CLlr8ZL0kE5mAxv8gS6R0rW3hYqC1pN7dJ2s"

code_verifier
string
wajib

Verifier PKCE yang hash S256-nya merupakan code_challenge proses masuk.

Required string length: 43 - 128
Pattern: ^[A-Za-z0-9._~-]{43,128}$
Contoh:

"dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk"

redirect_uri
string
wajib

redirect_uri persis yang digunakan saat proses masuk dimulai. Nilai ini harus tetap merupakan salah satu URI pengalihan aplikasi.

Maximum string length: 2048
Contoh:

"https://app.example.com/auth/callback"

client_id
string

Opsional. Jika dikirim, nilainya harus sama dengan ID aplikasi Anda, atau permintaan akan gagal dengan invalid_client.

Maximum string length: 64
Contoh:

"7b0a6c2e-3f41-4c9a-8d55-1e2f3a4b5c6d"

scope
string

Opsional dan diterima dari klien OpenID Connect standar. Ini tidak pernah memperluas izin yang diberikan saat masuk.

Maximum string length: 512
Contoh:

"openid email"

Respons

Token baru untuk sesi tersebut.

Token untuk satu sesi. Ganti ketiganya secara bersamaan setelah penyegaran.

access_token
string
wajib

JWT ES256, header typ: at+jwt. Kirimkan sebagai Authorization: Bearer <access_token>. Klaim: AccessTokenClaims.

Contoh:

"eyJhbGciOiJFUzI1NiIsImtpZCI6ImtfOHNKMmRRdlgwbkxyNVRmWWIzSGtQdyIsInR5cCI6ImF0K2p3dCJ9.eyJpc3MiOiJodHRwczovL3lvdXItYXBwLmF1dGguZGlkaXQubWUiLCJhdWQiOiI3YjBhNmMyZS0zZjQxLTRjOWEtOGQ1NS0xZTJmM2E0YjVjNmQiLCJzdWIiOiIxYzlkOGI4OC0xYmZmLTQzZDEtYWQ3YS04OGIyYmMwMDI0ZTkiLCJzaWQiOiJjOWFiZjZjYy0yZDY0LTRiZjItYjMxZS1hNGQwOWEwNzBhYjEiLCJqdGkiOiJSZ3F1NzE3OWUtbGhKMGJ2VmVELVlnIiwiaWF0IjoxNzkyMjMzNjc0LCJleHAiOjE3OTIyMzM5NzQsInZlbmRvcl9kYXRhIjoidXNlci00MiIsIm9yZyI6bnVsbCwidmVyaWZpZWQiOnt9LCJhbXIiOlsicGFzc3dvcmQiXSwiYWN0IjpudWxsLCJjbGllbnRfaWQiOiI3YjBhNmMyZS0zZjQxLTRjOWEtOGQ1NS0xZTJmM2E0YjVjNmQifQ.AxrqN8Pm-Op-3OayZk8HcvlFQZhozRiOvQ0SgQsGgrz4UNeJlUEeSlq9B8WcYUuM8naRaY5kQt_TUofnsYcyYQ"

id_token
string
wajib

JWT ES256, header typ: JWT, agar aplikasi Anda membaca siapa yang masuk. Jangan pernah mengirimkannya sebagai token akses. Klaim: IDTokenClaims.

Contoh:

"eyJhbGciOiJFUzI1NiIsImtpZCI6ImtfOHNKMmRRdlgwbkxyNVRmWWIzSGtQdyIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL3lvdXItYXBwLmF1dGguZGlkaXQubWUiLCJhdWQiOiI3YjBhNmMyZS0zZjQxLTRjOWEtOGQ1NS0xZTJmM2E0YjVjNmQiLCJzdWIiOiIxYzlkOGI4OC0xYmZmLTQzZDEtYWQ3YS04OGIyYmMwMDI0ZTkiLCJzaWQiOiJjOWFiZjZjYy0yZDY0LTRiZjItYjMxZS1hNGQwOWEwNzBhYjEiLCJqdGkiOiJNTHRPNHM4SHItQnJrcDd2NTlPV0Z3IiwiaWF0IjoxNzkyMjMzNjc0LCJleHAiOjE3OTIyMzM5NzQsInZlbmRvcl9kYXRhIjoidXNlci00MiIsIm9yZyI6bnVsbCwidmVyaWZpZWQiOnt9LCJhbXIiOlsicGFzc3dvcmQiXSwiYWN0IjpudWxsLCJhdXRoX3RpbWUiOjE3OTIyMzM2NzQsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJlbWFpbCI6InBlcnNvbkBleGFtcGxlLmNvbSIsIm5vbmNlIjoibi0wUzZfV3pBMk1qIn0.avhfDFp_aUV5_1ssYzwDcIA7H6Waf19P0bn5GCg25FhLIZBGIlwc8HiUPGj1j26r21OkP4FQnS_jM1Ho3dHtKQ"

refresh_token
string
wajib

Sekali pakai. Berlaku sampai sesi berakhir, dan setiap refresh mengembalikan URL baru.

Contoh:

"N4yZTl6y24YKYq77X_SOrBn1q2Lit81WBQMOay7dq_IVfTnxyY8ZGcJk-6-fcmWW"

token_type
enum<string>
wajib
Opsi yang tersedia:
Bearer
expires_in
integer
wajib

Detik hingga token akses kedaluwarsa: paling banyak 300, lebih sedikit jika sesi berakhir lebih cepat.

Rentang yang diperlukan: 0 <= x <= 300
Contoh:

299

session_id
string<uuid>
wajib

Sesi tempat token-token ini berada, nilai yang sama dengan klaim sid.

Contoh:

"c9abf6cc-2d64-4bf2-b31e-a4d09a070ab1"

Terakhir diubah pada 7 November 2026