2009-07-20 4 views
1

이 방법은 "현재 세션이 유효합니까?"라는 질문에 대답하지만, 왜 이 아닌지는 알 수 없습니다. 나는이 방법에 대한 소스를 읽었지만 아직도 얻지 못했다. 내가 수집 할 수있는 것은 세션 데이터가 만료되었는지 여부와 관련이 있지만 확실하지 않습니다.Cakephp에서 Session-> valid()는 무엇입니까?

이것은 최신 문서에는 표시되지 않지만 이전 버전의 Cake와 관련이있을 수 있지만 사용중인 버전에 있습니다.

답변

3

당신이 그것을 파괴하면 그것은 무효가 될 것입니다. 예를 들어, 로그 아웃 한 사용자의 모든 세션 데이터를 지우고 싶을 수 있습니다. 클라이언트는 서버에 대한 다음 게시물에서 메모리 쿠키에있는 세션 ID를 사용하려고 시도 할 수 있지만 서버는 이미 해당 세션을 파괴했습니다.

if ($this -> Session -> valid()) 
{ 
    $this -> Session -> destroy(); 
    $this -> redirect('/'); 
} 

또 다른

세션이 서버에서 시간 초과 및/또는 클라이언트가 나쁜/잘못된 세션 ID를 사용하여 서버와 동기화하려고하면 될 것이다.

+0

그러나 세션을 삭제하면 서버가 쿠키에서 세션 키를 지우도록 브라우저에 알리지 않아야합니까? 브라우저가 파괴 된 세션 키를 다시 보내면 경쟁 조건으로 인한 것일뿐입니다. – allyourcode

0

요청간에 사용자 에이전트가 변경된 경우 (검사가 사용 가능한 경우) 또는 세션이 만료 된 경우 유효하지 않을 수 있습니다.

관련 문제