인증 코드 입력
POST /fapi/v1/verifications/{verification_id}:attempt · 환경의 로그인 호스트에서 호출
인증 코드 전송 후 사용자가 받은 6자리 코드를 확인합니다. 코드가 맞으면 이메일 주소가 인증된 것으로 표시되고 코드는 사용 완료되며, 응답은 204입니다. 코드가 틀리면 해당 코드의 시도 횟수 중 하나가 사용됩니다. 잘못된, 만료된, 이미 사용된 또는 시도 횟수를 모두 소진한 코드, 알 수 없는 ID, 다른 사용자의 ID는 모두 동일하게 422 verification_invalid를 반환합니다. 이 경우 사용자는 새 코드를 요청해야 합니다. 인증된 사용자의 __Host-idp_session 쿠키가 필요하며, 쿠키가 없거나 만료되었거나 취소된 경우 401 unauthenticated를 반환합니다. 다른 오리진의 자사 앱은 대신 프런트 API 액세스 토큰(DPoP 증명과 함께 Authorization: DPoP <token>)을 보낼 수 있습니다(프런트 API 액세스 토큰 참조).
요청
경로 매개변수:
| 매개변수 | 설명 |
|---|---|
verification_id |
전송 응답의 id. |
헤더:
| 헤더 | 필수 | 설명 |
|---|---|---|
Idp-Client |
예 | SDK 식별자. |
Origin |
예 | 정확히 https://<로그인 호스트>여야 합니다. |
Content-Type |
예 | application/json. |
본문:
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
code |
string | 예 | 이메일로 받은 6자리 코드. |
응답
204 No Content; 이메일 주소가 인증되었습니다.
오류
| 상태 | 코드 | 발생 시점 |
|---|---|---|
| 400 | malformed_request |
본문이 올바른 JSON이 아닙니다. |
| 400 | unknown_field |
본문에 code 이외의 필드가 있습니다. |
| 401 | unauthenticated |
유효한 세션 쿠키가 없습니다. |
| 403 | origin_not_allowed |
Origin이 없거나 잘못되었습니다. |
| 403 | test_feature_not_in_production |
코드가 고정 테스트 코드 424242이고 환경이 운영 환경입니다. 시도는 잘못된 코드와 같이 소진됩니다. |
| 413 | payload_too_large |
본문이 너무 큽니다. |
| 415 | unsupported_media_type |
Content-Type이 application/json이 아닙니다. |
| 422 | validation_failed |
code가 없습니다. |
| 422 | verification_invalid |
코드가 잘못되었거나, 만료되었거나, 사용되었거나, 시도 횟수를 모두 소진했거나, ID를 알 수 없습니다. |
예시
curl -X POST https://example.keenauth.app/fapi/v1/verifications/0190a5c4-1b2c-7d3e-8f40-5162738400ff:attempt \
-H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
-H "Origin: https://example.keenauth.app" \
-H "Content-Type: application/json" \
-b cookies.txt \
-d '{"code": "123456"}'