사용자가 암호를 업데이트하면 전화 나 다른 브라우저와 같은 모든 세션을 무효화하고 현재 장치에 대한 단일 세션을 새로주고 싶습니다. 그냥 전화하면 sign_out @user; sign_in @user
, 작동하는 것 같습니다.암호 변경 후 모든 사용자 세션을 종료합니다.
그러나 Devise # sign_out 및 Warden # logout 메소드의 실제 구현을 제외하고는이 주장을 뒷받침하는 문서를 찾을 수 없습니다.
문서화 된 솔루션이 더 깨끗합니까?
감사합니다.
그러나 Devise/Warden은 실제로이 문제를 매우 잘 처리합니다. 워든은 세션 식별자를 취소하지 않습니다. 오히려 단지 세션에서 직렬화 된 사용자를 삭제합니다 (사용자 ID 또는 저장된 모든 소유권 주장). 이렇게하려면 사용자가 다시 로그인해야합니다. – max
그러나 기본 CookieStore 세션 저장 메커니즘을 사용하는 경우 모든 장치에서 세션을 쉽게 취소 할 수 없습니다. 이것은 세션이 특정 장치가 보유한 세션 식별자에 연결되어 있고 저장소가 해당 장치에 있기 때문입니다. 따라서 어떤 세션 식별자가 사용자 레코드에 링크되어 있는지 알 수 없습니다./memcached 데이터베이스 저장소를 사용하는 경우 데이터베이스를 쿼리하고 세션을 제거 할 수 있습니다. – max
답변 해 주셔서 감사합니다. 'reset_session'은 주어진 사용자의 다른 모든 세션을 만료합니까? –