계정 · 즐겨찾기
계정은 선택 사항입니다. 회원가입 없이도 청취와 (기기 단위) 즐겨찾기가 가능합니다.
인증 헤더
- 계정 로그인:
Authorization: Bearer {token} - 익명 기기:
X-Device-UUID: {기기 고유 UUID}
POST /auth/register
curl -X POST https://tune.tideflo.work/api/v1/auth/register \
-H "Content-Type: application/json" \
-d '{"email":"user@example.com","password":"password12345","display_name":"홍길동"}'
email필수(형식 검증),password8자 이상,display_name선택.- 성공(201):
data.user와data.token(Bearer) 반환. 토큰 유효기간 60일.
{ "success": true, "data": { "user": { "id": 1, "email": "user@example.com", "display_name": "홍길동", "provider": "local" }, "token": "c0a5fdd1..." } }
POST /auth/login
curl -X POST https://tune.tideflo.work/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"user@example.com","password":"password12345"}'
성공 시 data.token 발급(로그인마다 새 토큰).
GET /auth/me
curl https://tune.tideflo.work/api/v1/auth/me -H "Authorization: Bearer {token}"
POST /auth/logout
현재 토큰을 폐기합니다. Authorization: Bearer {token} 필요.
즐겨찾기
소유자는 로그인 토큰 또는 기기 UUID 로 판별됩니다(토큰 우선).
GET /favorites
# 계정
curl https://tune.tideflo.work/api/v1/favorites -H "Authorization: Bearer {token}"
# 익명 기기
curl https://tune.tideflo.work/api/v1/favorites -H "X-Device-UUID: 550e8400-..."
data 는 방송국 요약 배열(‘/stations’ 목록과 동일한 형식).
POST /favorites
curl -X POST https://tune.tideflo.work/api/v1/favorites \
-H "Content-Type: application/json" -H "X-Device-UUID: 550e8400-..." \
-d '{"station_id": 11}'
- 이미 존재하면 그대로 성공(멱등). 201 반환.
DELETE /favorites/{stationId}
curl -X DELETE https://tune.tideflo.work/api/v1/favorites/11 -H "X-Device-UUID: 550e8400-..."
로드맵 (2차)
- 구글 / 카카오 / 네이버 소셜 로그인 (스키마의
provider,provider_uid필드 사용 예정) - 계정 ↔ 기기 즐겨찾기 병합