2017-02-18 2 views
0

내가레일 5 것은 Session.delete는

https://www.railstutorial.org/book/basic_login#sec-exercises_logging_out

그건에서 운동을 해왔 브라우저에서 쿠키를 삭제하지 내가 세션이 로그 아웃 한 후 삭제되었는지 확인해야한다고 말한다 , 내 브라우저 (파이어 폭스)에서 쿠키가 사라지게됩니다

session.delete(:user_id) 

를 사용하여 세션을 삭제합니까?

또한 웹 사이트의 다른 페이지를 방문 할 때 쿠키 내용이 변경된다는 것을 알았습니까? 로그온하지 않아도 처음으로 웹 사이트를 방문 할 때 쿠키를 얻습니다.

답변

0

아니요, 소스 코드 https://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch/request/session.rb#L146에서 볼 수 있듯이 쿠키에서 키를 제거하기 만하면됩니다. 사실 그것은 인증 된 것을 죽일 것입니다. 그러나 쿠키는 여전히 존재할 것입니다 (사용자가 더 이상 인증되지 않는다고 말하지는 않습니다).

또한, 나는 내 웹 사이트의 다른 페이지를 방문하고있을 ​​때 쿠키의 내용이 변경이 의도 된 행동한다는 것입니다 것으로 나타났습니다?

예, Rails의 기본 방식 인 CookieStore를 사용하는 경우 모든 데이터가 쿠키에 저장됩니다. 따라서 필드를 추가하거나 변경하면 쿠키가 변경됩니다. (데이터가 암호화되어있어 보안되어 있음을 알 수 있습니다.) 내 웹 사이트를 방문 할 때 그것은 레일 심지어 어떤 인증이 발생하기 전에 세션을 시작하는 의미가

에 로그인하지 않을 경우 http://api.rubyonrails.org/classes/ActionDispatch/Session/CookieStore.html

또한, 처음으로, 심지어 을 쿠키를 얻을 - 그것은 기본적이다 어떤 데이터도 아직없는 식별자 만 있으면됩니다. "세션"은 인증 된 사용자를 의미 할 필요는 없지만 사용자가 선호하는 언어 나 그가 인증되기 전에 웹 사이트를 연 시간을 저장하고자 할 수 있습니다.

+0

고맙습니다. 쿠키를 완전히 삭제해야한다고 생각합니다. 이제는 명확하지만 브라우저 쿠키를 통해 세션이 제거되었는지 어떻게 확인해야합니까? –