runlot
참조API

Dashboard와 CLI 로그인

auth 카테고리의 API 작업 5개를 다룹니다.

메서드경로설명
POST/v1/auth/dev/logindev 로그인 방식으로 로그인
GET/v1/auth/github/startGitHub OAuth 시작
GET/v1/auth/github/callbackGitHub OAuth 콜백
GET/v1/config이 배포의 이름
GET/v1/me현재 사용자와 소속 조직

POST /v1/auth/dev/login

이 방식은 로컬 전용 로그인 방식입니다. GitHub OAuth와 같은 목적이지만 외부 인증 왕복 없이 동작합니다(docs/local-mvp.md §1). 프로덕션에서는 이 경로가 등록되지 않으며, RUNLOT_ENABLE_DEV_AUTH가 켜진 서버에서만 존재합니다.

같은 subject로 다시 호출하면 동일한 사용자를 반환합니다 — 로컬에서 토큰을 잃어버릴 때마다 새 계정이 생성된다면 사용할 수 없을 것입니다.

operationId devLogin

요청 본문: application/json · object

상태 코드설명응답 본문
200세션 토큰Session
400

GET /v1/auth/github/start

redirect는 로그인이 끝난 뒤 토큰을 프래그먼트로 담아 돌아갈 클라이언트 콜백입니다(https://dash.runlot.io/login/callback). 서버의 허용 목록(RUNLOT_GITHUB_REDIRECTS, 기본값은 RUNLOT_PUBLIC_URL)에 있는 접두사와 일치해야 합니다. 이 요청은 GitHub 인증 페이지로 302를 보냅니다. 브라우저가 이 경로를 따라가므로 클라이언트 라이브러리는 이를 호출하지 않습니다 — window.location으로 엽니다.

operationId githubStart

매개변수위치필수타입설명
redirectquery문자열
상태 코드설명응답 본문
302GitHub 인증으로
400

GET /v1/auth/github/callback

이 경로는 GitHub 앱의 Authorization 콜백 URL입니다. 코드를 세션으로 교환한 뒤 redirect로 302를 보냅니다 — 성공 시 #token=…&expiresAt=…&userId=…&subject=…, 실패 시 #error=<code>&message=…입니다. 토큰이 서버 로그나 Referer 헤더에 기록되지 않도록 프래그먼트를 사용합니다.

operationId githubCallback

매개변수위치필수타입설명
codequery아니오문자열
statequery문자열
errorquery아니오문자열
상태 코드설명응답 본문
302클라이언트 콜백으로
400

GET /v1/config

여기서 대시보드는 자신이 어느 배포에 연결되어 있는지를 알아냅니다(docs/environments.md §3.2). 대시보드는 단일 정적 빌드이므로 배포마다 다른 값을 알 방법이 없고, 페이지는 이를 문자열로 하드코딩했습니다 — 환경이 두 개가 되는 순간 개발 페이지가 프로덕션 주소를 가리키게 되는데, 그 안내가 그럴듯해 보여서 어떤 테스트도 이를 잡아내지 못합니다.

인증 없음: 로그인 페이지에도 문서 링크가 있습니다. 여기 나타나는 것은 랜딩 페이지에 이미 실린 이름들뿐입니다.

기능의 켜짐/꺼짐 상태는 여기 없습니다 — Billing, Storage, Email은 각각 자체 상태를 보고하는 고유 엔드포인트를 갖고 있습니다.

operationId getSiteConfig

상태 코드설명응답 본문
200배포의 이름object

GET /v1/me

현재 사용자와 소속 조직

operationId getMe

상태 코드설명응답 본문
200사용자object
401

이 페이지의 목차