환경 구성 가져오기
GET /fapi/v1/environment · 환경의 로그인 호스트에서 호출됨
거래를 열기 전에 로그인 페이지가 필요로 하는 공개 구성을 반환합니다. 애플리케이션의 새 거래가 제공할 첫 번째 인증 요소,
가입 모드, 활성화된 언어 및 패스키가 제공되는 경우 패스키의 rp_id가 포함됩니다. 응답에는 개인 데이터가 없고,
쿠키를 읽지 않으며, 거래를 열지 않습니다.
요청
헤더:
| 헤더 | 필수 | 설명 |
|---|---|---|
Idp-Client |
예 | SDK 식별자, <패키지>/<버전> (<런타임>/<버전>). |
쿼리 매개변수:
| 매개변수 | 필수 | 설명 |
|---|---|---|
client_id |
예 | 애플리케이션의 client_id. |
응답
200 OK:
| 필드 | 설명 |
|---|---|
schema_version |
1. |
first_factors |
새 거래가 이 순서대로 제공하는 방법: password, passkey, email_otp, magic_link. 정책이 어떤 방법도 허용하지 않으면 비어 있습니다. |
sign_up |
가입 모드: open, invite_only 또는 closed. |
locales |
enabled(활성화된 언어)와 default(기본 언어). |
passkey |
패스키 로그인이 제공될 때만: rp_id. |
응답에는 Cache-Control: max-age=60이 포함되며, 정책 변경은 1분 이내에 반영됩니다.
오류
| 상태 | 코드 | 언제 |
|---|---|---|
| 400 | malformed_request |
Idp-Client이(가) 없습니다. |
| 403 | environment_suspended |
환경이 일시 중지되었습니다. |
| 403 | headless_not_allowed |
애플리케이션이 퍼스트 파티가 아닙니다. |
| 404 | not_found |
호스트가 어떤 환경에도 속하지 않습니다. |
| 422 | validation_failed |
client_id이(가) 없거나, 너무 길거나, 알 수 없습니다(/client_id). |
예제
curl "https://example.keenauth.app/fapi/v1/environment?client_id=app_01j9zq3k5m7n8p9r0s1t2v3w4x" \
-H "Idp-Client: my-app/1.0.0 (node/22.0.0)"
{
"schema_version": 1,
"first_factors": ["password", "passkey", "email_otp"],
"sign_up": "open",
"locales": {"enabled": ["tr", "en"], "default": "tr"},
"passkey": {"rp_id": "example.keenauth.app"}
}