Skip to content

셀러 웹사이트 세션 관리

작성: 0chil

주문 연동, 배송지 입력 연동 등 필요한 땐 언제든지 사용하기 위해 셀러 웹사이트의 세션을 사용 가능한 상태로 유지한다.

  • URL: https://{website.domain}/exec/front/Member/login/
  • Method: POST
  • Content-Type: application/x-www-form-urlencoded
  • Body:
    • member_id: 셀러 웹사이트 아이디
    • member_passwd: 셀러 웹사이트 비밀번호
  • 로그인 성공한 경우
    • Status(고정됨): 200 OK
    • Body(포함):
      <script type='text/javascript'>
      location.replace('/');
      </script>
  • 로그인 실패한 경우
    • Status(고정됨): 200 OK
    • Body(포함):
      <script type='text/javascript'>
      alert('아이디 또는 비밀번호가 일치하지 않습니다.');location.replace('/');
      </script>
  • ECSESSID
  • PHPSESSVERIFY

Cafe24는 위 두 헤더를 통해 사용자(세션)를 식별한다

Cafe24 쇼핑몰의 세션 유지 시간 은 2시간이다.
ex) 11:04 로그인 -> 13:05 만료, 사용 불가

  • 세션 식별자 (sessionIds) 저장 방식
    • 추후 다른 사이트 지원 가능성이 있어 변경 가능성이 큼 - Map<> 사용
    • 읽기/쓰기가 한 번에 발생하므로 - AttributeConverter를 통해 한 컬럼에서 JSON으로 관리
      • 부분적인 접근은 필요하지 않음
      • 또한 세션 데이터는 언제든 재현할 수 있는 데이터이므로, 특별하게 테이블로 관리할 이유도 없다.
  • 세션 유지 시간 (TTL)
    • 2시간이므로 여유있게 1시간 40분 이후 만료된다고 가정한다
  • 현재 사용 가능한 세션을 가져올 수 있다
    • 현재 방식은 동시성 문제 가능성이 있음
  • 만료된 세션들을 갱신할 수 있다
    • 추후 주기적으로 실행하도록 배치 작업으로 전환