셀러 웹사이트 세션 관리
작성: 0chil주문 연동, 배송지 입력 연동 등 필요한 땐 언제든지 사용하기 위해 셀러 웹사이트의 세션을 사용 가능한 상태로 유지한다.
Cafe24 쇼핑몰 세션 획득
Section titled “Cafe24 쇼핑몰 세션 획득”로그인 URL
Section titled “로그인 URL”REQUEST
Section titled “REQUEST”- URL:
https://{website.domain}/exec/front/Member/login/ - Method: POST
- Content-Type: application/x-www-form-urlencoded
- Body:
member_id: 셀러 웹사이트 아이디member_passwd: 셀러 웹사이트 비밀번호
RESPONSE
Section titled “RESPONSE”- 로그인 성공한 경우
- Status(고정됨):
200 OK - Body(포함):
<script type='text/javascript'>location.replace('/');</script>
- Status(고정됨):
- 로그인 실패한 경우
- Status(고정됨):
200 OK - Body(포함):
<script type='text/javascript'>alert('아이디 또는 비밀번호가 일치하지 않습니다.');location.replace('/');</script>
- Status(고정됨):
세션 식별자 헤더
Section titled “세션 식별자 헤더”- ECSESSID
- PHPSESSVERIFY
Cafe24는 위 두 헤더를 통해 사용자(세션)를 식별한다
세션 유지 시간
Section titled “세션 유지 시간”Cafe24 쇼핑몰의 세션 유지 시간
은 2시간이다.
ex) 11:04 로그인 -> 13:05 만료, 사용 불가
셀러 웹사이트 세션
Section titled “셀러 웹사이트 세션”- 세션 식별자 (
sessionIds) 저장 방식- 추후 다른 사이트 지원 가능성이 있어 변경 가능성이 큼 -
Map<>사용 - 읽기/쓰기가 한 번에 발생하므로 -
AttributeConverter를 통해 한 컬럼에서 JSON으로 관리- 부분적인 접근은 필요하지 않음
- 또한 세션 데이터는 언제든 재현할 수 있는 데이터이므로, 특별하게 테이블로 관리할 이유도 없다.
- 추후 다른 사이트 지원 가능성이 있어 변경 가능성이 큼 -
- 세션 유지 시간 (TTL)
- 2시간이므로 여유있게 1시간 40분 이후 만료된다고 가정한다
셀러 웹사이트 세션 서비스
Section titled “셀러 웹사이트 세션 서비스”- 현재 사용 가능한 세션을 가져올 수 있다
- 현재 방식은 동시성 문제 가능성이 있음
- 만료된 세션들을 갱신할 수 있다
- 추후 주기적으로 실행하도록 배치 작업으로 전환