본문으로 건너뛰기

이메일 로그인 확인

메일의 링크 토큰 또는 이메일과 6자리 코드로 로그인합니다, 계정이 없으면 가입 단계로 넘어갑니다

POST /v1/auth/email/verify

인증

인증 없음, 콘솔 세션 쪽 요청이라 같은 출처의 Origin(또는 Referer) 헤더가 있어야 합니다, 없으면 403 insufficient_permission(cross-site request blocked)입니다

요청 본문

token 또는 email + code 중 하나

필드타입필수설명
tokenstring메일 링크의 #token= 값
emailstring코드로 확인할 때의 이메일
codestring메일의 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코드뜻
400invalid_login토큰이나 코드가 틀렸거나 만료, 사용됨
403account_disabled비활성화된 계정
403insufficient_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"}'

다음 단계