Session
TODO: 재작성
클라이언트에서 세션&쿠키 갱신 요청
- 쿠키 만료 시간 == 세션 만료 시간
- 만료 시간 짧음
- 로그인
- 쿠키 생성
session.Manager.NewSessionID
->session.Manager.SetCookie
- 세션 생성
- 쿠키 생성
- 기타 API
- 쿠키에서 세션 ID 가져오기
session.Manager.SessionIDFromCookie
- 세션 가져오기
- 쿠키에서 세션 ID 가져오기
- 갱신
- 쿠키에서 세션 ID 가져오기
session.Manager.SessionIDFromCookie
- 쿠키에 새 세션 ID 저장
session.Manager.NewSessionID
->session.Manager.SetCookie
- 세션 ID 변경 및 만료 시간 갱신
- 쿠키에서 세션 ID 가져오기
- 로그아웃
- 쿠키에서 세션 ID 가져오기
session.Manager.SessionIDFromCookie
- 쿠키 삭제
session.Manager.DeleteCookie
- 세션 삭제
- 쿠키에서 세션 ID 가져오기
서버에서 세션 자동 갱신
- 쿠키 만료 시간 > 세션 만료 시간
- 로그인
- 쿠키 생성
session.Manager.NewSessionID
->session.Manager.SetCookie
- 세션 생성
- 쿠키 생성
- 기타 API
- 쿠키에서 세션 ID 확인 및 쿠키 만료 시간 갱신
session.Manager.SessionIDFromCookie
->session.SetCookie
- DB에서 세션 정보 가져오기
- 쿠키에서 세션 ID 확인 및 쿠키 만료 시간 갱신
- 갱신
- 쿠키에서 세션 ID 가져오기
session.Manager.SessionIDFromCookie
- 쿠키에 새 세션 ID 저장
session.Manager.NewSessionID
->session.Manager.SetCookie
- 세션 ID 변경 및 만료 시간 갱신
- 쿠키에서 세션 ID 가져오기
- 로그아웃
- 쿠키에서 세션 ID 가져오기
session.Manager.SessionIDFromCookie
- 쿠키 삭제
session.Manager.DeleteCookie
- 세션 삭제
- 쿠키에서 세션 ID 가져오기
데이터베이스
session:sessions:<sid>
:{<key>: <value>}
- 데이터베이스에 따라 만료된 세션을 자동으로 삭제 할 수 없다면 아래 값이 필요할 수 있습니다.
session:sessions:<sid>:expiration
:<timestamp>
session:expirations:<timestamp>
:{<sid>}