> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Autentikasi Next.js: Panduan Cepat

> Rencanakan sesi Autentikasi di sisi server dengan callback PKCE, cookie HttpOnly, dan otorisasi untuk permintaan terproteksi di Didit.

> [!WARNING]
>
> Autentikasi adalah fitur baru: `@didit-protocol/auth-nextjs` dan komponen verifikasi server inti bergantung pada rilis. Tidak ada jalur impor middleware, nama cookie, atau bentuk nilai kembali `auth()` yang ditetapkan sebelum rilis paket. Token akses adalah JWT ES256: verifikasi dengan JWKS aplikasi Anda, dan panggil `GET session/` saat Anda perlu memastikan sesi masih aktif.

## Simpan sesi di server Anda

Gunakan alur yang di-hosting yang dijelaskan dalam [panduan cepat JavaScript](https://docs.didit.me/id/authentication/quickstarts/javascript.md), dengan perubahan berikut untuk aplikasi yang dirender di server. Nama rute Anda adalah rute aplikasi yang Anda implementasikan sendiri, bukan endpoint API Didit.

| Rute aplikasi | Tanggung jawab |
| - | - |
| Mulai masuk | Buat state dan S256 PKCE; simpan transaksi dalam sesi server berumur pendek; alihkan ke `{origin}/sign-in`. |
| Callback terdaftar | Validasi state dan masa berlaku, konsumsi transaksi dan pastikan transaksi tersebut hanya dapat digunakan satu kali, tukarkan kode di endpoint `token/`, dan simpan token di server. |
| Halaman atau rute API yang dilindungi | Baca cookie sesi Anda dan verifikasi token akses pengguna akhir terhadap JWKS Anda, atau verifikasi di `session/` jika pencabutan harus berlaku seketika; otorisasi tindakan yang diminta untuk orang tersebut. |
| Refresh | Serialisasi refresh per sesi, panggil `token/`, dan ganti pasangan token secara atomik. |
| Keluar | Mutasi yang dilindungi CSRF yang mencabut `session/` dan menghapus sesi aplikasi. |

Kirim hanya referensi sesi aplikasi yang acak dalam cookie `Secure`, `HttpOnly`, `SameSite=Lax` dengan path yang dibatasi. Gunakan masa berlaku yang sesuai dan rotasi referensi setelah masuk. Jangan tampilkan refresh token Didit dalam props yang dirender, komponen klien, atau penyimpanan browser. Gunakan `Cache-Control: no-store` pada respons token dan callback.

Jangan hanya mengandalkan pemeriksaan layout atau middleware: lakukan otorisasi di setiap akses data dan mutasi. Lindungi mutasi yang diautentikasi dengan cookie dari CSRF. Izinkan hanya tujuan pasca-masuk yang sudah dikonfigurasi, jangan pernah URL `returnTo` sembarang dari query string.

## Pratinjau rilis paket

Paket yang direncanakan menambahkan middleware, `auth()` sisi server, rute callback, dan dukungan cookie HttpOnly untuk rendering sisi server. Entri `/server` inti dimaksudkan untuk menyediakan `verifyToken()` dengan JWKS yang di-cache. Tunggu ekspor dari rilis yang telah diverifikasi sebelum menggunakan simbol-simbol ini. Sampai saat itu, verifikasi token sendiri dengan pustaka JOSE apa pun, sebagaimana dijelaskan dalam [token dan JWKS](https://docs.didit.me/id/authentication/tokens-and-jwks.md).

## Hubungkan produk lainnya

Buat sesi verifikasi dan terbitkan token pemantauan yang dibatasi di server. Turunkan `vendor_data` dari pemetaan orang yang sudah divalidasi. Kembalikan ke browser hanya URL sesi verifikasi atau token SDK berumur pendek. Jangan letakkan `DIDIT_API_KEY` dalam variabel lingkungan publik.

Gunakan [SDK verifikasi web](https://docs.didit.me/id/integration/web-sdks/javascript-sdk.md) yang sudah ada untuk verifikasi, dan [panduan pengiriman transaksi](https://docs.didit.me/id/transaction-monitoring/sdk-transaction-submission.md) untuk pemantauan. Keduanya bukan pengelola sesi Autentikasi.

Uji pemutaran ulang callback, state yang salah, state yang kedaluwarsa, kondisi race saat refresh, sesi yang dicabut, penolakan CSRF, dan keluar sebelum rilis. Lihat [token dan JWKS](https://docs.didit.me/id/authentication/tokens-and-jwks.md) untuk kontrak validasi.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.