[RUBY-ON-RAILS] 모든 사용자가 다시 로그인에있다, 그래서 어떻게 모든 유증 세션을 재설정 할 수 있습니다?
RUBY-ON-RAILS모든 사용자가 다시 로그인에있다, 그래서 어떻게 모든 유증 세션을 재설정 할 수 있습니다?
이 레일에 어떤 신비 포인트 X에서 갑자기 다른 사용자로 로그인 할 로그인 한 사용자, Heroku가에서 호스팅되는 응용 프로그램. 나는 인증을 위해 고안 보석을 사용하고 있습니다.
이것은 우리가 알고있는이 사용자를 위해 발생했습니다. 나는 현재이 문제의 근본 원인이 될 수있는 것을 추적하고있다.
내가 지금해야 할 것은 다시 로그인 힘 사용자에게 위해 모든 유증 세션을 무효화합니다. 사용자가 로그인 한 후, 문제는 사라질 것으로 보인다.
내 secret_token을 다시 설정하라는 시도하지만 난 다시 로그인을 강요하지 않았다. 그때 나는 내 웹 내려 동력계 다음 다시 축소. 또한 응용 프로그램을 다시 시작됩니다. 모든 세션을 재설정 secret_token 변경을 시도.
어떤 다른 아이디어?
해결법
-
==============================
1.쿠키 (기본값)에 세션을 저장하는 경우 귀하의 SESSION_TOKEN을 변경하면 작동합니다.
쿠키 (기본값)에 세션을 저장하는 경우 귀하의 SESSION_TOKEN을 변경하면 작동합니다.
당신이 active_record에 저장하는 경우 그러나, 당신은 모든 세션에 의해 삭제할 수 있습니다 :
rake db:sessions:clear
다음 : BAM! 더 세션 없음.
-
==============================
2.당신의 설정 / 초기화 / session_store.rb를 살고있는 모든 세션을 무효화하는 세션 쿠키 이름을 변경 할 수 있어야한다
당신의 설정 / 초기화 / session_store.rb를 살고있는 모든 세션을 무효화하는 세션 쿠키 이름을 변경 할 수 있어야한다
YourApp::Application.config.session_store :cookie_store, key: '_change_me_session'
-
==============================
3.당신의 세션이 다른 중요한 정보를 저장하지 않는 경우 세션을 취소 할 수 :
당신의 세션이 다른 중요한 정보를 저장하지 않는 경우 세션을 취소 할 수 :
rake db:sessions:clear
-
==============================
4.지금은, 허용 대답에 업데이트
지금은, 허용 대답에 업데이트
tmp를 긁어 : 투명
레이크 -T ... 레이크의 tmp : #를 만들 세션, 캐시, 소켓 및 PID를위한 TMP 디렉토리를 작성합니다
-
==============================
5.유증은 당신이 그와 함께 작업 할 수 timeoutable라는 것이있다?
유증은 당신이 그와 함께 작업 할 수 timeoutable라는 것이있다?
-
==============================
6.체크 아웃
체크 아웃
module ClassMethods Devise::Models.config(self, :timeout_in) end
난 그냥 당신이 좋아하는 뭔가를 할 수 같은데요 :
User.all.each do |user| user.timeout_in 1.second end
그러나 나는 확실하지 이것은 단지 새로운 세션 .. 그리고 존재하지 않는 사람을 관리하는 경우거야?
사실이 너무 복잡합니다 .. 단지 시도 :
User.all.each do |user| sign_out user end
유증을 가진 모든 사용자에서이 게시물 로그를 참조하십시오
콘솔에서이 같은 뭔가를 당신은 당신의 요구를이 예제를 확인하고 조정해야합니다
어떻게 레일 콘솔에서 고안를 사용하여 사용자가 로그인하는?
-
==============================
7.모든 활성 사용자 또는 범위를 아웃합니다. 이 헬퍼는 한 번의 클릭으로 모든 역할을 서명하는 데 유용합니다. 모든 출력이 표시는 소장에서 스코프. 가 있다면이 적어도 하나의 로그 아웃이고 거짓 경우에 true를 돌려줍니다에는 사용자가 모든 범위에 로그인합니다.
모든 활성 사용자 또는 범위를 아웃합니다. 이 헬퍼는 한 번의 클릭으로 모든 역할을 서명하는 데 유용합니다. 모든 출력이 표시는 소장에서 스코프. 가 있다면이 적어도 하나의 로그 아웃이고 거짓 경우에 true를 돌려줍니다에는 사용자가 모든 범위에 로그인합니다.
출처: http://www.rubydoc.info/github/plataformatec/devise/Devise/Controllers/SignInOut
-
==============================
8.쿠키 저장소를 사용하는 경우, 우리는 쿠키를 암호화하는 데 사용되는 응용 프로그램 secret_token를 다시 생성해야합니다.
쿠키 저장소를 사용하는 경우, 우리는 쿠키를 암호화하는 데 사용되는 응용 프로그램 secret_token를 다시 생성해야합니다.
구성에 파일 secret_token : 설정 / 초기화 / secret_token.rb
간부 레이크 비밀을 번들하는 새로운 비밀 토큰을 생성하는 데 사용할 수 있습니다.
https://www.tigraine.at/2012/08/03/how-to-expire-all-active-sessions-in-rails-3
from https://stackoverflow.com/questions/16406208/how-can-i-reset-all-devise-sessions-so-every-user-has-to-login-again by cc-by-sa and MIT license