user_loginsession 테이블을 생성하여 로그인된 유저와 세션ID 값을 참조하게 합니다.
class LoginSession(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
session = models.ForeignKey(Session, on_delete=models.CASCADE)
id
session_id
user_id
1
k4zeepouxzifqzdoemzm4us68rressef
1
로그인 하기 전 동일한 사용자를 조회하여 기존에 생성된 세션들이 존재한다면 해당하는 django_session 레코드를 제거합니다.
적용내용
인증 쿠키들
로그인 후 ACCESS, REFRESH 토큰 이 외 CSRF토큰과 세션ID 쿠키가 전달됩니다.
세션은 브라우저를 종료하거나 로그아웃 하기 전까지 만료되지 않습니다.
토큰을 재발급 받는 경우에는 세션만 인증검사를 합니다.
ACCESS 토큰, 세션 둘 중 하나라도 유효하지 않은 경우 인증에 실패합니다.
단일 로그인 방식
user_loginsession 테이블을 생성하여 로그인된 유저와 세션ID 값을 참조하게 합니다.
로그인 하기 전 동일한 사용자를 조회하여 기존에 생성된 세션들이 존재한다면 해당하는 django_session 레코드를 제거합니다.
제거된 세션들은 인증에 실패하게 됩니다.