7

Wufoo와 비슷한 레일 앱을 만들고 있습니다. 가입 할 때 하위 도메인을 얻고 홈 페이지에 로그인 할 수 있습니다. 앱이 작동하여 로그인하면 하위 도메인으로 리디렉션됩니다. 문제는 두 도메인에서 세션을 삭제할 수 없다는 것입니다. (username.myapp.com)에서 로그 아웃하면 (myapp.com) 로그인 한 상태로 유지되며 그 반대의 경우도 마찬가지입니다.레일즈의 여러 서브 도메인에서 세션 쿠키 삭제하기

지금은 session[:user_id] = nil을 사용하여 세션을 삭제하고 있습니다. 모든 도메인에서 모든 세션을 삭제하는 방법이 있습니까?

또한 :domain => :all을 내 session_store.rb 파일에 추가하여 여러 하위 도메인에 로그인 할 수있었습니다.

답변

6

최상위 도메인 (myapp.com)에서 하위 도메인 쿠키 (username.myapp.com)를 삭제할 수 없기 때문에 키가 실제로 세션 쿠키를 설정하는 방법입니다. 이 문제를 해결하려면 myapp.com 도메인 아래에 공유 세션 쿠키를 모두 설정해야합니다.

Rails.application.config.session_store :cookie_store, :domain => 'myapp.com' 

그런 식으로, 당신은 당신의 세션 (session[:id] = nil) 당신이 공유 쿠키를 제거 할 수 있습니다를 파괴 : 설치 다음과 같은 방법으로 사용자의 세션을,이 작업을 수행합니다. 세션 [: id] 대신 세션 [: user_id]을 사용하여 세션을 삭제해야한다고 생각합니다.

+0

감사합니다. 완벽하게 작동합니다. –