0

스테이트리스 웹 응용 프로그램의 세션 관리 메커니즘이 얼마나 정확하게 작동하는지 이해하려고합니다. 현재 내가 플레이 프레임 워크를 사용하고 있지만 비 저장 웹의 모든이가 플레이 프레임 워크의 문서에서입니다서버가 클라이언트의 세션 쿠키를 서버에 저장하지 않고 인식하는 방법

을 프레임 워크에 대한 메커니즘이 동일해야한다고 생각 : (link)

는 것을 이해하는 것이 중요 세션 플래시의 데이터가 쿠키 메커니즘을 사용하여 서버에 저장되지 않지만 각각의 후속 HTTP 요청에 추가

,536,

물론 쿠키 값은 비밀 키로 서명되므로 클라이언트가 쿠키 데이터를 수정할 수 없거나 무효화됩니다.

이제 내 질문은 서버가 세션 ID에 대해 아무 것도 저장하지 않으면 어떻게 클라이언트에서 오는 세션을 인증합니까?!

많은 검색을했는데 서버 측 세션 관리가 실제로 어떻게 작동하는지 알 수 없었습니다.

답변

2

이제 서버에서 세션 ID에 관한 내용을 저장하지 않으면 어떻게 클라이언트에서 오는 세션을 인증합니까?

은 무엇 플레이 않습니다 그것이 키를 통해 세션 데이터가 KEY (당신이 application.conf에서 설정 한 그것 application.secret)과는 숫자 데이터를 생성라고 서명입니다. 당신이 쿠키를 검사하면 그 다음은 데이터와 쿠키에 암호화 된 데이터를 첨부하고 다시 =5d9857e8a41f94ecb2e4e957cd3ab4f263cfbdea

데이터

암호화 된 데이터를 = 보냅니다[email protected]&userName=silentprogrammer

(오른쪽 반드시 브라우저를 클릭> 검사 요소 -> 응용 프로그램 -> 쿠키 -> 귀하의 URL)을 실행중인 응용 프로그램의 브라우저에서 볼 수 있습니다.

"[email protected]&userName=silentprogrammer" 

각 요청에 대해 데이터 부분 ([email protected]&userName=silentprogrammer)이 KEY에서 데이터에 다시 서명하고 요청에서 오는 영숫자 데이터 (즉, 데이터와 암호화 키가 동일한 경우)가 같으면 세션이 확인 된 5d9857e8a41f94ecb2e4e957cd3ab4f263cfbdea으로 확인합니다 그렇지 않으면 세션이 만료됩니다. 브라우저에서 데이터 부분을 쿠키에서 변경하고 요청을 다시 보내면 세션을 확인할 수 있습니다.

이것은 내가 본 것입니다.

+1

확인 - 비밀 키는 실제로'application.conf'의'application.secret'에 의해 정의됩니다. –