복붙노트

[RUBY-ON-RAILS] 모든 사용자가 다시 로그인에있다, 그래서 어떻게 모든 유증 세션을 재설정 할 수 있습니다?

RUBY-ON-RAILS

모든 사용자가 다시 로그인에있다, 그래서 어떻게 모든 유증 세션을 재설정 할 수 있습니다?

이 레일에 어떤 신비 포인트 X에서 갑자기 다른 사용자로 로그인 할 로그인 한 사용자, Heroku가에서 호스팅되는 응용 프로그램. 나는 인증을 위해 고안 보석을 사용하고 있습니다.

이것은 우리가 알고있는이 사용자를 위해 발생했습니다. 나는 현재이 문제의 근본 원인이 될 수있는 것을 추적하고있다.

내가 지금해야 할 것은 다시 로그인 힘 사용자에게 위해 모든 유증 세션을 무효화합니다. 사용자가 로그인 한 후, 문제는 사라질 것으로 보인다.

내 secret_token을 다시 설정하라는 시도하지만 난 다시 로그인을 강요하지 않았다. 그때 나는 내 웹 내려 동력계 다음 다시 축소. 또한 응용 프로그램을 다시 시작됩니다. 모든 세션을 재설정 secret_token 변경을 시도.

어떤 다른 아이디어?

해결법

  1. ==============================

    1.쿠키 (기본값)에 세션을 저장하는 경우 귀하의 SESSION_TOKEN을 변경하면 작동합니다.

    쿠키 (기본값)에 세션을 저장하는 경우 귀하의 SESSION_TOKEN을 변경하면 작동합니다.

    당신이 active_record에 저장하는 경우 그러나, 당신은 모든 세션에 의해 삭제할 수 있습니다 :

    rake db:sessions:clear
    

    다음 : BAM! 더 세션 없음.

  2. ==============================

    2.당신의 설정 / 초기화 / session_store.rb를 살고있는 모든 세션을 무효화하는 세션 쿠키 이름을 변경 할 수 있어야한다

    당신의 설정 / 초기화 / session_store.rb를 살고있는 모든 세션을 무효화하는 세션 쿠키 이름을 변경 할 수 있어야한다

    YourApp::Application.config.session_store :cookie_store, key: '_change_me_session'
    
  3. ==============================

    3.당신의 세션이 다른 중요한 정보를 저장하지 않는 경우 세션을 취소 할 수 :

    당신의 세션이 다른 중요한 정보를 저장하지 않는 경우 세션을 취소 할 수 :

    rake db:sessions:clear
    
  4. ==============================

    4.지금은, 허용 대답에 업데이트

    지금은, 허용 대답에 업데이트

    tmp를 긁어 : 투명

    레이크 -T ... 레이크의 tmp : #를 만들 세션, 캐시, 소켓 및 PID를위한 TMP 디렉토리를 작성합니다

  5. ==============================

    5.유증은 당신이 그와 함께 작업 할 수 timeoutable라는 것이있다?

    유증은 당신이 그와 함께 작업 할 수 timeoutable라는 것이있다?

  6. ==============================

    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. ==============================

    7.모든 활성 사용자 또는 범위를 아웃합니다. 이 헬퍼는 한 번의 클릭으로 모든 역할을 서명하는 데 유용합니다. 모든 출력이 표시는 소장에서 스코프. 가 있다면이 적어도 하나의 로그 아웃이고 거짓 경우에 true를 돌려줍니다에는 사용자가 모든 범위에 로그인합니다.

    모든 활성 사용자 또는 범위를 아웃합니다. 이 헬퍼는 한 번의 클릭으로 모든 역할을 서명하는 데 유용합니다. 모든 출력이 표시는 소장에서 스코프. 가 있다면이 적어도 하나의 로그 아웃이고 거짓 경우에 true를 돌려줍니다에는 사용자가 모든 범위에 로그인합니다.

    출처: http://www.rubydoc.info/github/plataformatec/devise/Devise/Controllers/SignInOut

  8. ==============================

    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

  9. 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