2012-08-03 2 views
3

사용자를 로그인 할 때 devise는 이전 세션을 무효화하지 않는 것 같습니다. UserA로 로그인 한 경우 로그인 화면으로 돌아가서 UserB로 다시 로그인하십시오. devise는 이전 세션을 삭제하지 않고 새 세션을 만들지 만 UserA 세션은 유지합니다. Session #을 사용자 로그인에 대해 어떻게 호출 할 수 있는지 궁금합니다. Session # create 메서드를 다시 구현할 수 있지만 모든 컨트롤러 뷰 생성과 관련하여 이해할 수 있음을 알고 있습니다. 이 일을하는 더 깨끗한 방법이 있는지 궁금하네요.로그인시 사용자 계정 세션을 파괴하십시오.

답변

0

내가하려는 일을 잘 모르겠지만 UserB가 로그인 할 때 UserA 세션을 무효화하려는 경우 다른 장소에서 로그인 할 때 문제가 발생할 수 있습니다.

0

이것은 극단적 인 경우입니다. UserA는 로그인 한 후 UserB로 로그인하면 로그 아웃하지 않고 자주 로그인하지 않습니다. 정말로 걱정된다면 "이미 로그인했습니다."라는 플래시 메시지와 함께 사이트의 기본 페이지로 리디렉션 할 수 있습니다. 또는 그런 것.

+0

"극단적 인 경우"로 보지 않습니다. 오히려 응용 프로그램 디자인의 문제이며 많은 시간을 보았습니다. 로그인 양식을 포함하는 공개 페이지는 좋은 예입니다. 로그인 한 사용자와 관련된 기능이 없기 때문에 사용자가 이미 로그인했음을 나타내는 신호가 없기 때문입니다. 사용자가 " "먼저 로그 아웃하지만 개발자는 사용자 행동을 직접 제어 할 수 없습니다. 누군가가 처음에 로그인 세부 정보를 입력한다는 사실은 내 의견으로는 기존 세션에 대한 암시적인 "로그 아웃"이어야합니다. –