본문으로 건너뛰기

이메일 로그인 시작

로그인 링크와 6자리 코드를 이메일로 보냅니다, 비밀번호는 없습니다

POST /v1/auth/email/start

콘솔 로그인 화면이 쓰는 엔드포인트입니다, 계약 초안에는 없고 서버(server/ci/runner2-routes.js)에만 있습니다

인증

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

요청 본문

필드타입필수설명
emailstring필수로그인할 이메일, 소문자로 정규화하고 254자 이하

응답

202

{
  "sent": true,
  "expires_at": "2026-10-12T03:11:05Z"
}
  • 메일에는 링크(<콘솔>/login/verify#token=…)와 6자리 코드가 함께 들어 있고 15분 동안 한 번만 쓸 수 있습니다
  • 같은 이메일은 15분에 5번, 같은 IP는 15분에 20번까지 요청할 수 있습니다, 넘으면 429 rate_limited와 Retry-After 헤더입니다

오류

HTTP코드뜻
400invalid_request이메일 형식이 아님
403insufficient_permission같은 출처가 아닌 요청
429rate_limited이메일 또는 IP 기준 요청 상한, retryafters 뒤 다시
503mail_unavailable메일을 보낼 수 없음

예시

curl -X POST "https://xenoci.com/api/runner/v1/auth/email/start" \
  -H "Origin: https://xenoci.com" \
  -H "Content-Type: application/json" \
  -d '{"email":"dev@example.com"}'

다음 단계