챌린지 맞춤 설정하기
게이트가 보여 주는 검증 페이지는 사이트 키별로, 대시보드의 그 프록시 게이트 페이지에서 구성합니다. 다른 모든 설정과 마찬가지로 관리 API, MCP, Terraform으로도 구성합니다. 아래 모든 옵션의 기본값은 지금 이미 쓰고 있는 동작이므로, 손대지 않는 사이트 키는 예전 그대로 돌아갑니다.
게임이냐 체크박스냐 고르기
챌린지 유형이 방문자가 실제로 무엇을 하는지 정합니다:
| 유형 | 방문자가 하는 일 | 어울리는 때 |
|---|---|---|
| 게임 플레이 | 페이지 안에서 짧은 검증 게임을 합니다 | 봇에 대해 더 강한 신호. 기본값입니다. 방문자에게 몇 초가 듭니다. |
| 체크박스로 확인 | 작업 증명 검사가 도는 동안 한 번 누릅니다 | 더 빠르고 더 가볍고, 설치할 게임도 없습니다. 신호는 더 약합니다. |
두 가지 규칙이 선택을 묶습니다:
- 게임을 요구하는 사이트 키는 항상 게임을 보여 줍니다. 사이트 키 자체의 검증에 게임을 요구 설정이 켜져 있거나, 팀이 모든 키에 게임을 요구하면, 체크박스 선택지는 쓸 수 없고 대시보드가 어느 설정이 그것을 고정하는지 알려 줍니다. API로 설정하면
409 gate-forces-game-mode를 돌려줍니다. - 게임을 고르려면 설치된 게임이 필요합니다. 사이트 키에는 재생 가능한 아티팩트를 가진 설치된 게임이 자기 것이든 팀에서 물려받은 것이든 최소 하나 필요합니다. 하나도 없을 때
409 no-games를 돌려주는 것은 게임 유형을 고르는 쪽입니다. 게이트를 켜는 것만으로는 돌려주지 않습니다. 게임을 요구하지 않는 사이트 키는 체크박스로 물러나므로, 게임을 정리하는 동안에도 게이트는 계속 동작합니다.
이 마지막 경우는 알아채는 법을 알아 둘 값어치가 있습니다. 게이트가 걸린 사이트를 멈춰 세우기 때문입니다: 게이트는 다시 게임을 쓸 수 있을 때까지 모든 방문자에게 "확인을 이용할 수 없음" 페이지로 답합니다. 아무도 설정을 건드리지 않았는데 찾아올 수도 있는데, 게임은 고정된 버전이 저희 결정론 검사를 통과해야 비로소 셈에 들어가기 때문입니다. 프록시 게이트 페이지는 사이트 키가 그 상태에 놓일 때마다 경고하고, 게임 목록과 게임을 요구하고 있는 설정 양쪽으로 링크를 겁니다. 그러니 게임을 하나 설치하거나, 요구를 풀고 체크박스가 넘겨받게 하면 됩니다.
언어나 테마 고정하기
언어와 테마 둘 다 기본값은 방문자에 맞춤이고, 거의 언제나 그게 원하는 바입니다:
- 언어는 방문자 자신의 브라우저 언어를 따릅니다. 위젯이 지원하는 것과 같은 열한 개 언어입니다.
- 테마는 방문자 시스템의 밝음이나 어두움 선호를 따르고, 그에 맞춰 바뀝니다.
대신 고정하는 것은, 게이트를 건 사이트가 한 언어뿐일 때, 또는 한 테마로 밀고 가고 있어서 검증이 방문자의 기기를 따르기보다 그 테마에 맞기를 바랄 때입니다.
어느 쪽이든 검증 페이지는 이 사이트 키의 브랜드를 두릅니다. 위젯이 쓰는 것과 같은 브랜드 이름, 로고, 색, 링크를 같은 사이트 키에서 풀어냅니다. 그것은 위젯의 외관 설정에서 한 번만 구성하면 게이트가 가져다 씁니다. 맞춤 브랜드 프리셋은 위젯과 마찬가지로 Apex 플랜이 필요합니다. 언어와 테마 옵션 자체는 게이트를 쓸 수 있는 모든 플랜에서 됩니다.
검증 페이지 자체의 문구는 맞춤 설정할 수 없습니다.
쿠키 이름과 콜백 경로 바꾸기
기본값이 앱과 부딪칠 때만 이것들을 바꾸세요.
쿠키 이름(기본값 cpt_gate)은 프록시가 패스로부터 설정하는 퍼스트파티 쿠키입니다. 앱이 이미 그 이름을 쓰고 있거나, 한 도메인에서 게이트 걸린 앱을 여럿 돌리면서 각각 따로 통과시키고 싶다면 이름을 바꾸세요.
콜백으로 POST되는 필드는 쿠키를 무엇이라 이름 붙이든 항상 cpt_gate입니다. 그러니 콜백의 본문 파싱은 결코 바뀌지 않습니다. 바뀌는 것은 Set-Cookie에 쓰는 이름뿐입니다. 게이트의 응답에는 콜백에 어느 이름을 쓸지 알려 주는 cookie_name 필드가 들어 있습니다.
콜백 경로(기본값 /__cpt/callback)는 패스를 받아 쿠키를 설정하는, 당신 자신의 오리진 위 라우트입니다. 앱의 라우터가 이미 그 경로를 차지하고 있다면 옮기세요. 오리진 위의 평범한 경로여야 합니다. 스킴도, 호스트도, 쿼리 문자열도, 프래그먼트도 없이.
게이트를 일부 경로로 좁히기
이 경로만 게이트 적용와 이 경로는 절대 게이트 적용 안 함는 한 줄에 패턴 하나씩 받아, 생성되는 리버스 프록시 구성을 빚습니다. 둘 다 비워 두면 모든 경로에 게이트가 걸립니다.
이들은 권고입니다. 바뀌는 것은 당신이 복사하는 스니펫이고, 강제하는 것은 당신의 프록시입니다. 인가자 서브요청과 당신의 콜백 경로는 항상 게이트 없이 두세요. 생성되는 구성은 이미 그렇게 해 둡니다.
전형적인 로그인 포털이라면:
이 경로만 게이트 적용:
/
/api/firstfactor
이 경로는 절대 게이트 적용 안 함:
/api/verify
/healthz함께 보기
- 프록시 페이지 게이트 설정하기: nginx 안내.
- 리버스 프록시 레시피: 콜백 계약과 다른 프록시들.
- 개요: 개념과 통과 쿠키.