이메일 로그인 확인
메일의 링크 토큰 또는 이메일과 6자리 코드로 로그인합니다, 계정이 없으면 가입 단계로 넘어갑니다
POST /v1/auth/email/verify인증
인증 없음, 콘솔 세션 쪽 요청이라 같은 출처의 Origin(또는 Referer) 헤더가 있어야 합니다, 없으면 403 insufficient_permission(cross-site request blocked)입니다
요청 본문
token 또는 email + code 중 하나
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
token | string | 메일 링크의 #token= 값 | |
email | string | 코드로 확인할 때의 이메일 | |
code | string | 메일의 6자리 코드, 5번 틀리면 그 링크는 못 씁니다 |
응답
200 로그인됨
Set-Cookie: xci_console=…; HttpOnly; Secure; SameSite=Lax; Path=/; Max-Age=1209600 (14일) 와 함께 호출자 확인과 같은 모양의 본문
200 가입 필요
아직 계정이 없는 이메일이면 가입 토큰 쿠키(xci_signup, 30분)를 심고 다음을 돌려줍니다
{
"status": "signup_required",
"email": "dev@example.com"
}오류
| HTTP | 코드 | 뜻 |
|---|---|---|
| 400 | invalid_login | 토큰이나 코드가 틀렸거나 만료, 사용됨 |
| 403 | account_disabled | 비활성화된 계정 |
| 403 | insufficient_permission | 같은 출처가 아닌 요청 |
예시
curl -X POST "https://xenoci.com/api/runner/v1/auth/email/verify" \
-H "Origin: https://xenoci.com" \
-H "Content-Type: application/json" \
-c cookies.txt \
-d '{"email":"dev@example.com","code":"482913"}'