2

현재 쿠키 기반 세션이 있습니다. 동일한 세션으로 내 시스템의 모든 하위 도메인에 대한 액세스를 허용하려고하므로 사용자는 한 번만 로그인하고 내 사이트 (section1.mysite.com, section2.mysite.com 등)를 통해 액세스 권한을 부여 받게됩니다. 내가 지금처럼 내 설정/초기화/session_store.rb를 업데이트 한레일 3 - session_store : domain =>로 변경하면 "무한"세션 : 모두

는 :

Mysite::Application.config.session_store :cookie_store, :key => '_mysite_session', :domain => :all 
#Mysite::Application.config.session_store :cookie_store, :key => '_mysite_session' 

주석 처리 된 라인은 내가 전에 가지고 보여줍니다. 이제 서버를 다시 시작할 때 로그 아웃 (쿠키 세션을 저장하지 않은 상태) 한 경우이 방법이 유용합니다. 그러나 첫 번째 구성에 대한 쿠키 세션이있는 경우 : domain => all으로 전환하면 해당 세션을 삭제할 수 없습니다. 세션이 삭제되지 않으므로 사용자가 무기한 로그인됩니다. 사용자는 주석 처리 된 세션 구성에 로그인 한 세션에서 로그 아웃 할 수 없으며 새로운 구성이 완료되면 로그 아웃하려고 시도합니다.

것들 나는 시도했다 : 이 * security_token을 didnt 변경은 *에 대한 (내가이 일을해야한다고 생각 ... 나는 이것에 대해 혼란 스러워요)을 session_store 키 도움이 보이지 않았다 변경 * 도움이 보인다 나의 삶 나는 수동으로 세션을 삭제하는 방법을 찾을 수 없다.

내가 무엇을해도, 나는이 변경을하기 전에 로그인 한 후에는 일단 로그 아웃 할 수 없다.

미리 도움 주셔서 감사합니다. 벤

답변

1

:domain 옵션은 :domains과 같이 복수가 아니어야합니까? 귀하의 경우에는

, 즉 할 것 :
Mysite::Application.config.session_store :cookie_store, 
    :key => '_mysite_session', :domains => :all 

그리고 순서

이 지속 세션을 제거하기 위해, 브라우저의 쿠키를 삭제 할 수 있습니다.

업데이트 :

Mysite::Application.config.secret_token= 'XXXXXXXXX...XXXXXXXXX' 
+0

난 : secret_token.rb 초기화를 설정을///

응용 프로그램 :

는 다음 레일 파일을 편집, 사용자가 쿠키를 제거하려면 꽤 ": 도메인"은 키이고 ": 도메인"은 올바르지 않습니다. 그리고 내 자신의 브라우저를 영구 세션을 지우는 데 동의하고 쿠키를 사용하여 문제를 해결할 수 있지만 모든 사용자의 브라우저에서이를 수행 할 수는 없습니다. 도메인을 변경 한 후 세션 쿠키를 수동으로 삭제해야합니다. – workingBen

+0

후자의 문제에 대한 해결책을 추가했습니다. –

+1

Arnaud의 업데이트 된 코드가 사용자 쿠키를 제거하는 방법을 명확히하기 위해 (그 이유를 이해하려는 사람을 돕기 위해) - secret_token을 변경 한 후에 서버가 기본적으로 찾고 있습니다. 그 시점에서 다른 쿠키를 위해. 그것을 찾지 못하면 새로운 것을 만듭니다 (이전의 것을 모두 무시합니다). – slant