---
type: how-to
title: Sesuaikan tantangan
summary: Pilih game atau kotak centang sekali ketuk, patok bahasa dan tema, dan ganti nama cookie serta jalur callback yang gerbang pakai di origin-mu.
---

Halaman verifikasi yang gerbang tampilkan diatur per kunci situs, di halaman **Gerbang proxy** miliknya di dasbor, dan lewat [management API](/docs/automation/management-api), MCP, dan Terraform seperti setiap pengaturan lain. Tiap opsi di bawah defaultnya adalah perilaku yang sudah kamu punya, jadi kunci situs yang tak pernah kamu sentuh tetap bekerja persis seperti sebelumnya.

## Pilih game atau kotak centang

**Jenis tantangan** menentukan apa yang pengunjung benar-benar lakukan:

| Jenis | Apa yang pengunjung lakukan | Kapan cocok |
|---|---|---|
| **Main game** | Memainkan game verifikasi singkat di dalam halaman | Sinyal lebih kuat melawan bot. Ini defaultnya. Menghabiskan beberapa detik pengunjung. |
| **Konfirmasi dengan kotak centang** | Mengetuk sekali selagi pemeriksaan bukti kerja berjalan | Lebih cepat, lebih ringan, tak ada game untuk dipasang. Sinyal lebih lemah. |

Dua aturan membatasi pilihan itu:

- **Kunci situs yang mewajibkan game selalu menampilkan game.** Jika pengaturan **Wajibkan game untuk verifikasi** milik kunci situs itu sendiri menyala, atau timmu mewajibkan game pada tiap kunci, opsi kotak centang tak tersedia dan dasbor menyebut pengaturan mana yang mematoknya. Menyetelnya lewat API mengembalikan `409 gate-forces-game-mode`.
- **Memilih game butuh game terpasang.** Kunci situs butuh setidaknya satu game terpasang dengan artefak yang bisa diputar ulang, miliknya sendiri atau warisan dari tim. Tanpa satu pun, yang mengembalikan `409 no-games` adalah *memilih* jenis game. Menyalakan gerbang saja tidak: kunci situs yang tidak mewajibkan game akan mundur ke kotak centang, jadi gerbang tetap bekerja selagi kamu membereskan game-nya.

<Callout type="info">
Jika game terpasang yang terakhir kemudian dihapus, kunci situs yang mewajibkan game berhenti menyajikan verifikasi ketimbang diam-diam mundur ke hal lain, karena kotak centang tak bisa memverifikasi pada kunci yang mewajibkan game. Kunci yang *tidak* mewajibkan game mundur ke kotak centang, agar situsmu tetap terjangkau.
</Callout>

Kasus terakhir itu perlu kamu kenali, karena ia membuat situs bergerbang tidak bisa diakses: gerbang menjawab tiap pengunjung dengan halaman "Verifikasi tidak tersedia" sampai ada game yang tersedia lagi. Ia juga bisa datang tanpa ada yang mengubah pengaturan, sebab sebuah game baru dihitung begitu versi yang dipatoknya lolos pemeriksaan determinisme kami. Halaman Gerbang proxy memperingatkan setiap kali sebuah kunci situs berada di keadaan itu dan menautkan ke daftar game sekaligus ke pengaturan yang mewajibkan game, jadi kamu bisa memasang satu game atau mencabut kewajibannya dan membiarkan kotak centang yang mengambil alih.

## Patok satu bahasa atau satu tema

Baik **Bahasa** maupun **Tema** defaultnya *ikuti pengunjung*, dan itu hampir selalu yang kamu mau:

- **Bahasa** mengikuti bahasa peramban pengunjung sendiri, dalam sebelas bahasa yang sama dengan yang widget dukung.
- **Tema** mengikuti preferensi terang atau gelap sistem pengunjung, dan berganti bersamanya.

Patok salah satunya sebagai gantinya saat situs bergerbang itu berbahasa tunggal, atau saat ia berpegang pada satu tema dan kamu ingin verifikasi menyesuaikannya ketimbang mengikuti perangkat pengunjung.

Bagaimanapun, halaman verifikasi membawa **merek kunci situs ini**: nama merek, logo, warna, dan tautan yang sama dengan yang widget-mu pakai, diturunkan dari kunci situs yang sama. Itu kamu atur sekali, di pengaturan tampilan widget-mu, dan gerbang mengambilnya. Preset merek kustom butuh paket Apex, sama seperti untuk widget; opsi bahasa dan tema itu sendiri bekerja di tiap paket yang menyediakan gerbang.

Kata-kata halaman verifikasi itu sendiri tak bisa disesuaikan.

## Ganti nama cookie dan jalur callback

Ubah ini hanya saat nilai default berbenturan dengan app-mu.

**Nama cookie** (default `cpt_gate`) adalah cookie pihak-pertama yang proxy-mu set dari pass. Ganti namanya jika app-mu sudah memakai nama itu, atau jika kamu menjalankan beberapa app bergerbang pada satu domain dan ingin meloloskannya secara terpisah.

<Callout type="warn">
**Mengganti dari satu nama kustom ke nama kustom lain membuat situs bergerbang-mu tidak bisa diakses sampai kamu menyalin ulang cuplikan reverse proxy dari halaman Gerbang proxy milik kunci situsmu dan memuat ulang proxy-mu.** Gerbang mencari nama baru sementara proxy-mu masih menulis yang lama, jadi pengunjung dikirim ke verifikasi, lulus darinya, lalu langsung dikirim balik ke sana, dalam putaran yang berakhir di batas laju. Sebaliknya, beralih dari default `cpt_gate` aman dilakukan lebih dulu lalu disambungkan belakangan, karena gerbang tetap mengenali nilai default.
</Callout>

**Field yang di-POST ke callback-mu selalu `cpt_gate`**, apa pun nama yang kamu beri ke cookie. Jadi pembacaan body di callback-mu tak pernah berubah; yang berubah hanya nama yang ia tulis di `Set-Cookie`. Respons dari gerbang menyertakan field `cookie_name` yang memberi tahu callback-mu nama mana yang dipakai.

**Jalur callback** (default `/__cpt/callback`) adalah rute di origin-mu sendiri yang menerima pass dan men-set cookie. Pindahkan jika router app-mu sudah memiliki jalur itu. Ia harus berupa jalur polos di origin-mu: tanpa skema, tanpa host, tanpa query string, tanpa fragmen.

## Persempit gerbang ke sebagian jalur

**Lindungi hanya jalur ini** dan **Jangan pernah lindungi jalur ini** menerima satu pola per baris dan membentuk konfigurasi reverse proxy yang dihasilkan. Biarkan keduanya kosong dan tiap jalur akan bergerbang.

Keduanya bersifat anjuran: keduanya mengubah cuplikan yang kamu salin, dan yang menegakkannya adalah proxy-mu. Selalu biarkan sub-permintaan otorisator dan jalur callback-mu tanpa gerbang, yang mana konfigurasi yang dihasilkan sudah melakukannya untukmu.

Portal login yang umum:

```
Lindungi hanya jalur ini:
/
/api/firstfactor

Jangan pernah lindungi jalur ini:
/api/verify
/healthz
```

## Lihat juga

- [Siapkan gerbang halaman proxy](/docs/proxy-page-gate/set-up): penelusuran nginx.
- [Resep reverse proxy](/docs/proxy-page-gate/reverse-proxy-recipes): kontrak callback dan proxy lainnya.
- [Ikhtisar](/docs/proxy-page-gate/overview): konsepnya dan cookie izin lewat.
