1

폼 인증을 사용하는 웹 사이트가 있습니다.데이터베이스에서 사용되지 않는 세션 ID를 비활성화 하시겠습니까?

1) 사용자는 로그인 상태를 유지할지 여부를 선택하여 로그인합니다.

2) Server는 토큰을 생성하여 데이터베이스에 저장하고 브라우저에 토큰 쿠키를 보냅니다.

사용자가 로그인 상태를 유지하지 않을 때 브라우저를 닫을 때 토큰 쿠키가 만료되고 사용자가 로그인 상태를 유지하면 토큰 쿠키는 로그인 한 후 1 년 후에 만료됩니다.

3) 사용자가 로그 아웃하면 서버는 데이터베이스에 저장된 토큰을 비활성화하고 브라우저에서 토큰 쿠키를 삭제합니다.

사용자가 로그인 상태를 유지하지 않으면 브라우저를 닫으면 토큰 쿠키가 만료되지만 데이터베이스에 저장된 토큰은 비활성화되지 않습니다. 서버는 사용자가 자신의 브라우저를 닫을 지 알 수 없습니다 브라우저.

데이터베이스에서 사용하지 않은 토큰을 어떻게 비활성화합니까?

답변

0

로그인 세부 정보를 기억하기 위해 서버 측에서 전체 세션을 유지하는 것은 일반적인 관행이 아닙니다. facebook/google 디자인을 따르는 것이 좋습니다. 사용자가 브라우저에서 "기억하기"를 원할 경우 사용자 테이블에서 해당 사용자의 마지막 유효한 액세스 토큰으로 유지되는 임의의 안전한 "액세스 토큰"쿠키를 생성합니다. 그런 다음 브라우저가 웹 사이트에 다시 액세스하면 해당 쿠키를 보내고 서버는 기존 (유효한) 액세스 토큰 중 하나와 일치하는지 확인하여 사용자에 로그인합니다.

+0

세션 ID (토큰)를 생성하여 데이터베이스에 저장하고 쿠키로 브라우저에 전송합니다. 사용자가 내 웹 사이트를 방문 할 때까지 자신의 세션 쿠키를 검사하고 데이터베이스에서 일치하는 것을 찾습니다. 내 광고는 Google이나 Facebook과 어떻게 다른가요? – dpp

+0

또한 데이터베이스에 만료 시간 소인을 작성하고 토큰에 대해 로그인 할 때 테스트해야합니다. db에서 토큰을 제거 할 필요는 없습니다. 마지막 토큰을 유지하십시오 (사용자 당 하나). 물론 익명 세션을위한 토큰을 만들 필요가 없습니다. 그렇지 않으면 db가 폭발 할 것입니다 :) –

관련 문제