인증과 토큰
Multica에는 세 종류의 토큰이 있습니다 — 브라우저, CLI, 데몬에 각각 하나씩. 어떤 상황에 무엇을 쓰는지 설명합니다.
Multica에는 세 종류의 토큰이 있으며, 각각 하나의 컨텍스트에 대응합니다: 브라우저 Web UI, 명령줄과 스크립트, 그리고 데몬입니다. 세 가지 모두 동일한 당신을 나타내지만, 범위와 수명이 다릅니다.
세 가지 토큰
| 토큰 | 형식 | 사용되는 곳 | 수명 |
|---|---|---|---|
| JWT 쿠키 | multica_auth 쿠키 (HttpOnly) | 웹 브라우저 | 30일 |
| 개인 액세스 토큰 (PAT) | mul_ 접두사 | CLI, 스크립트, 직접 API 호출 | 기본적으로 만료 없음. API로 생성할 때 expires_in_days를 전달할 수 있습니다 |
| 데몬 토큰 | mdt_ 접두사 | 데몬-서버 통신 | 데몬 자체가 관리 |
일상적인 사용에서는 앞의 두 가지만 직접 다루게 됩니다. 데몬 토큰은 multica daemon login이 자동으로 생성하고 갱신하므로, 신경 쓸 필요가 없습니다.
각 토큰이 접근할 수 있는 것
| API 라우트 | JWT 쿠키 | PAT | 데몬 토큰 |
|---|---|---|---|
/api/user/* (사용자 수준 작업) | ✓ | ✓ | ✗ |
/api/workspaces/:id/* (워크스페이스 수준) | ✓ | ✓ | ✗ |
/api/daemon/* (데몬 전용) | ✗ | ✓ | ✓ |
WebSocket /ws (실시간 푸시) | ✓ (쿠키) | ✓ (첫 메시지로 인증) | ✗ |
PAT는 거의 모든 것에 접근할 수 있습니다 — 이는 "완전한 당신"을 나타냅니다. 데몬 토큰은 데몬에 필요한 일, 즉 작업을 가져오고 결과를 보고하는 것만 할 수 있습니다.
둘 다 /api/daemon/*에 접근할 수 있지만, 범위가 다릅니다. PAT는 사용자 전체를 나타내며 — 일단 인증되면 당신이 속한 모든 워크스페이스를 볼 수 있습니다. 데몬 토큰은 생성 시점에 단일 워크스페이스에 고정되며 해당 워크스페이스의 리소스에만 접근할 수 있습니다. 프로덕션에서는 데몬을 데몬 토큰으로 실행하세요. 편의를 위해 PAT를 사용하는 지름길을 택하지 마세요. 그렇지 않으면 데몬에 필요한 것보다 훨씬 많은 권한을 부여하게 됩니다.
로그인
Email + 인증 코드
- 이메일을 입력하면 서버가 6자리 코드를 보냅니다.
- 코드를 입력하면 서버가 JWT 쿠키를 발급(브라우저)하거나 PAT로 교환(CLI)합니다.
자체 호스팅 운영자는 주의하세요: 공개 배포에서는 MULTICA_DEV_VERIFICATION_CODE를 비워 두세요. 고정된 로컬 테스트 코드를 활성화하면, APP_ENV가 production이 아닌 동안 코드를 요청할 수 있는 누구나 그 값으로 로그인할 수 있습니다. 자체 호스팅 인증 구성을 참고하세요.
Google OAuth
Sign in with Google을 클릭하고 표준 OAuth 콜백을 거치세요. 자체 호스팅에는 GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, 그리고 리디렉션 URI를 구성해야 합니다 — 자체 호스팅 인증 구성을 참고하세요.
PAT 생성, 조회, 취소
PAT 생성은 두 가지 방법으로 할 수 있습니다:
- Web UI: 설정 → API 토큰 → 새 토큰
- CLI:
multica login은 아직 로컬 PAT가 없으면 자동으로 하나를 생성합니다
전체 PAT는 생성될 때 정확히 한 번만 표시됩니다. 새로 고침하거나 대화상자를 닫은 후에는 다시 볼 수 없습니다.
Multica는 데이터베이스에 PAT의 해시만 저장합니다 — 서버조차 원본을 가져올 수 없습니다. 즉시 복사하여 저장하세요. 분실하면 유일한 방법은 취소하고 새로 생성하는 것입니다.
기존 PAT 조회(이름, 생성 시각, 마지막 사용 시각 — 전체 토큰은 포함하지 않음)는 설정 → API 토큰에 있습니다.
PAT 취소: 목록에서 Revoke를 클릭하세요. 취소는 즉시 적용됩니다 — 그 PAT로 보낸 다음 요청은 401로 거부됩니다.
로그아웃은 로컬 토큰만 삭제합니다
multica auth logout을 실행하거나 Web UI에서 로그아웃을 클릭하면:
- 로컬 토큰이 지워집니다 — CLI는
~/.multica/config.json에서 PAT를 제거하고, 브라우저는 쿠키를 삭제합니다. - PAT는 서버에서 여전히 유효합니다 — 로그아웃하기 전에 누군가 당신의 PAT를 입수했다면(예를 들어 다른 기기에 복사했다면), 그들은 여전히 그것을 사용할 수 있습니다.
PAT가 유출되었다고 의심되면, 단순히 로그아웃하지 마세요. 설정 → API 토큰로 가서 그 토큰을 취소하세요. 취소만이 유출된 토큰을 즉시 무효화합니다.
다음 단계
- CLI 명령어 레퍼런스 — 모든 CLI 명령어의 인증은 자동입니다
- 자체 호스팅 인증 구성 — 자체 호스팅 시 이메일, OAuth, 가입 허용 목록을 구성하는 방법
- 데몬과 런타임 — 데몬 토큰이 어디서 오는지