POST /api/v1/auth/kakao/token
의도
카카오 OAuth AccessToken으로 dartbrief JWT를 발급한다. 첫 로그인이면 자동으로 계정 생성.
인증
없음 (로그인 전 호출)
입력
json
{ "access_token": "<카카오 OAuth AccessToken>" }응답
200 OK
json
{ "token": "eyJhbGci..." }400 Bad Request — access_token 누락
401 Unauthorized — 카카오 인증 실패
curl 예제
bash
curl -s -X POST https://api.dartbrief.com/api/v1/auth/kakao/token \
-H "Content-Type: application/json" \
-d '{"access_token":"<카카오 토큰>"}' | jq
# 로컬
curl -s -X POST http://localhost:8000/api/v1/auth/kakao/token \
-H "Content-Type: application/json" \
-d '{"access_token":"<카카오 토큰>"}' | jq비즈니스 메모
- 발급된 JWT는
Authorization: Bearer $TOKEN헤더로 사용 (HttpOnly 쿠키 방식 폐기) - TTL은
JWT_EXPIRATION_MS환경변수 (밀리초 단위, 기본 168h = 7일) - 카카오 토큰은 Flutter 앱에서 kakao_flutter_sdk로 발급 후 바로 이 API 호출
GET /api/v1/auth/me
의도
현재 JWT의 사용자 정보 조회.
인증
Bearer JWT 필수
응답
200 OK
json
{ "user_id": 42 }401 Unauthorized
curl 예제
bash
curl -s -H "Authorization: Bearer $TOKEN" \
https://api.dartbrief.com/api/v1/auth/me | jqDELETE /api/v1/auth/withdraw
의도
회원 탈퇴 — 사용자 + 연관 데이터 전부 트랜잭션으로 삭제.
인증
Bearer JWT 필수 + X-Confirm-Withdraw: yes 헤더 필수 (CSRF/실수 방지)
응답
204 No Content — 탈퇴 완료
400 Bad Request — X-Confirm-Withdraw 헤더 누락
401 Unauthorized
curl 예제
bash
curl -s -X DELETE \
-H "Authorization: Bearer $TOKEN" \
-H "X-Confirm-Withdraw: yes" \
https://api.dartbrief.com/api/v1/auth/withdraw