인증과 로그인
스토어프론트 API 인증은 두 계층입니다.
| 계층 | 필요 시점 | 헤더 |
|---|---|---|
| 사이트 식별 | 모든 스토어프론트 API 요청 | X-Runmoa-Site-Key |
| 사용자 인증 | 마이페이지, 로그인 장바구니, 주문, 리뷰 작성 등 | Authorization: Bearer USER_LOGIN_TOKEN |
Schoolmoa client id 조회
섹션 제목: “Schoolmoa client id 조회”GET /api/storefront/v1/auth/schoolmoa-clientX-Runmoa-Site-Key: moa_pub_xxxxxxxxxAccept: application/json응답의 scid 값을 Schoolmoa 로그인 URL의 client_id로 사용합니다.
Schoolmoa callback 처리
섹션 제목: “Schoolmoa callback 처리”POST /api/storefront/v1/auth/schoolmoa/callbackX-Runmoa-Site-Key: moa_pub_xxxxxxxxxContent-Type: application/jsonAccept: application/json
{ "code": "AUTHORIZATION_CODE"}성공 응답에는 사용자 정보와 토큰이 포함됩니다.
{ "user": { "id": 123, "email": "buyer@example.com" }, "token": "USER_LOGIN_TOKEN", "token_type": "Bearer"}로그아웃
섹션 제목: “로그아웃”POST /api/storefront/v1/auth/logoutX-Runmoa-Site-Key: moa_pub_xxxxxxxxxAuthorization: Bearer USER_LOGIN_TOKENAccept: application/json토큰 저장
섹션 제목: “토큰 저장”정적 프론트엔드에서는 토큰 저장 방식을 사이트 정책에 맞춰 정합니다. 구현이 단순해야 하면 localStorage를 쓸 수 있지만, XSS 위험을 줄이려면 프론트엔드 코드와 외부 스크립트 관리를 엄격히 해야 합니다.
서버가 있는 구조라면 서버 세션 또는 httpOnly 쿠키로 토큰을 보관하는 방식이 더 안전합니다.