Langsung ke konten utama
Authentication masih baru. Didit mengaktifkan produk ini untuk aplikasi Anda. Sampai saat itu, setiap rute runtime untuk aplikasi tersebut mengembalikan 404. Paket SDK Authentication belum dipublikasikan, jadi gunakan alur yang di-hosting dan kontrak HTTP di halaman-halaman ini.
Authentication memungkinkan pelanggan Anda masuk ke aplikasi Anda. Fitur ini terpisah dari masuk ke konsol Didit atau membuat akun pengembang Didit. Fitur ini juga terpisah dari verifikasi identitas seseorang. Gunakan Authentication sendiri, atau kombinasikan dengan Verifikasi Identitas dan Pemantauan Transaksi. Masuk tidak menyetujui verifikasi dan tidak mengotorisasi pembayaran. Backend Anda membuat keputusan tersebut berdasarkan hasil dari masing-masing produk.

Cara kerjanya

Setiap aplikasi memiliki origin untuk masuk dan penerbit token sendiri. Aplikasi produksi dan sandbox terpisah: keduanya memiliki origin, pengaturan, dan identitas yang berbeda. Alurnya adalah kode otorisasi OAuth 2.0 dengan PKCE (hanya S256):
  1. Aplikasi Anda membuka {origin}/sign-in dengan redirect_uri, state, code_challenge, dan code_challenge_method=S256.
  2. Halaman yang di-hosting membuat orang tersebut masuk atau mendaftarkannya dengan metode yang Anda aktifkan, termasuk faktor kedua jika diwajibkan.
  3. Browser kembali ke redirect_uri Anda dengan code dan state.
  4. Aplikasi Anda menukar kode di POST {origin}/token/ dengan token akses, token ID, dan token refresh.
Lihat token dan JWKS untuk kontrak token dan metode masuk untuk setiap metode.

Pilih platform Anda

JavaScript

Masuk yang di-hosting, callback, sesi, dan logout.

React

State klien dan tampilan aplikasi yang dilindungi.

Next.js

Sesi server, rute callback, dan cookie.

iOS

Browser sistem dan penyimpanan token yang aman.

Android

Otorisasi browser dan callback aplikasi.

React Native

Persiapan wrapper autentikasi bawaan.

Flutter

Persiapan wrapper autentikasi bawaan.

Siapkan aplikasi Anda

  1. Minta Didit mengaktifkan Authentication untuk aplikasi Anda. Uji coba di aplikasi sandbox terlebih dahulu.
  2. Daftarkan URL redirect Anda yang tepat (hingga 50) dan allowed_origins browser (hingga 50) yang memanggil API runtime.
  3. Aktifkan metode masuk yang ingin Anda tawarkan. Didit ID Wallet selalu aktif.
  4. Pilih pengaturan sesi dan kata sandi Anda (lihat di bawah).
  5. Uji pendaftaran, masuk, lupa kata sandi, MFA, kedaluwarsa sesi, dan logout sebelum Anda beralih ke produksi.
Passkey terikat pada origin-nya. Jika nanti Anda mengaktifkan domain kustom, pengguna harus mendaftarkan ulang passkey mereka.

URL redirect

Didit hanya mengembalikan pengguna ke alamat yang telah Anda daftarkan. Daftarkan alamat Anda di konsol, di bawah Authentication > Security and sessions > Redirect URLs and allowed origins. redirect_uri dalam permintaan masuk harus cocok dengan URL yang terdaftar karakter demi karakter: skema, host, port, path, dan query. Port yang berbeda, garis miring di akhir, atau perbedaan huruf besar-kecil menghasilkan alamat yang berbeda. Wildcard, fragment, kredensial dalam URL, dan skema kustom ditolak. Saat alamat tidak terdaftar, Didit tidak pernah mengarahkan ke alamat tersebut. {origin}/sign-in mengembalikan 400 dengan halaman yang menjelaskan apa yang harus didaftarkan dan di mana, dan POST {origin}/authorize/ mengembalikan 400 {"error": "invalid_redirect_uri"}.

Pengembangan lokal

Uji di mesin Anda sendiri dengan aplikasi sandbox Anda:
  1. Daftarkan callback Anda beserta port-nya, misalnya http://localhost:3000/auth/callback.
  2. Jika kode browser memanggil API runtime, misalnya untuk menukar kode di POST {origin}/token/, tambahkan origin ke Allowed origins juga: http://localhost:3000, tanpa path dan tanpa garis miring di akhir.
  3. Mulai masuk di origin sandbox Anda, https://<slug>.sandbox.auth.didit.me, dengan kunci pk_test_... Anda.
localhost, 127.0.0.1, dan [::1] adalah alamat yang berbeda, begitu juga setiap port. Daftarkan setiap alamat yang Anda gunakan. Aplikasi produksi tidak pernah menerima http://. Sebelum beralih ke produksi, daftarkan callback https:// produksi Anda di aplikasi produksi Anda.

Pengaturan aplikasi

Anda mengelola pengaturan ini di konsol, atau dengan sesi konsol yang berwenang dan memiliki write:authentication.

Pertahankan satu orang di seluruh produk

Setiap identitas memiliki nilai vendor_data. Nilai ini adalah external_id yang Anda berikan saat mengimpor orang tersebut, atau ID identitas Didit jika tidak. Nilai ini muncul di token akses, ID token, dan GET session/. Gunakan nilai yang sama sebagai vendor_data saat Anda membuat sesi verifikasi dan mengirimkan transaksi. Dengan begitu, event autentikasi masuk ke orang yang sama di konsol seperti verifikasi dan transaksinya. Lihat event dan webhook. Dapatkan vendor_data di backend Anda dari token yang sudah diverifikasi, jangan pernah dari kolom browser yang belum diperiksa. Gunakan instruksi integrasi bersama untuk kombinasi apa pun. Baca perlindungan bot untuk kebijakan yang berjalan saat masuk.
Terakhir diubah pada 7 November 2026