콘텐츠로 이동

인증과 로그인

스토어프론트 API 인증은 두 계층입니다.

계층필요 시점헤더
사이트 식별모든 스토어프론트 API 요청X-Runmoa-Site-Key
사용자 인증마이페이지, 로그인 장바구니, 주문, 리뷰 작성 등Authorization: Bearer USER_LOGIN_TOKEN
GET /api/storefront/v1/auth/schoolmoa-client
X-Runmoa-Site-Key: moa_pub_xxxxxxxxx
Accept: application/json

응답의 scid 값을 Schoolmoa 로그인 URL의 client_id로 사용합니다.

POST /api/storefront/v1/auth/schoolmoa/callback
X-Runmoa-Site-Key: moa_pub_xxxxxxxxx
Content-Type: application/json
Accept: application/json
{
"code": "AUTHORIZATION_CODE"
}

성공 응답에는 사용자 정보와 토큰이 포함됩니다.

{
"user": {
"id": 123,
"email": "buyer@example.com"
},
"token": "USER_LOGIN_TOKEN",
"token_type": "Bearer"
}
POST /api/storefront/v1/auth/logout
X-Runmoa-Site-Key: moa_pub_xxxxxxxxx
Authorization: Bearer USER_LOGIN_TOKEN
Accept: application/json

정적 프론트엔드에서는 토큰 저장 방식을 사이트 정책에 맞춰 정합니다. 구현이 단순해야 하면 localStorage를 쓸 수 있지만, XSS 위험을 줄이려면 프론트엔드 코드와 외부 스크립트 관리를 엄격히 해야 합니다.

서버가 있는 구조라면 서버 세션 또는 httpOnly 쿠키로 토큰을 보관하는 방식이 더 안전합니다.