환경 구성 가져오기

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"}
}