2010-02-17 1 views
7

Authlogic을 사용하여 응용 프로그램에서 세션을 관리하고 있습니다.
그러나 기본적으로 authlogic을 사용하면 사용자가 여러 컴퓨터에서 여러 번 로그인 할 수 있습니다.
나는 그것을 원하지 않습니다 (사용자는 액세스 권한을 얻고 사용자가 계정을 공유하지 못하게하고 싶습니다).동일한 사용자에 대한 Authlogic 및 다중 세션

Authlogic 설명서를 보면 perishable_token에 대해 알았습니다. 그러나 구현하려고 할 때 persistence_token이 필요하다는 오류가 발생합니다 (부패하기 쉬운 것이 아닌 경우).

Authlogic의 기능을 사용하면 어떻게됩니까?

감사합니다 :)

답변

16

확인 부패 토큰이 절대적으로하지 옳은 길이었다 그래서) 우리는 "그냥"토큰 사용자가 로그인 또는 로그 아웃 할 때마다 지속성을 재설정해야

가. 내 UserSession 모델에서 모든 사용자가 로그인 할 때 다른 세션에서 로그 오프됩니다.

class UserSession < Authlogic::Session::Base 
    before_destroy :reset_persistence_token 
    before_create :reset_persistence_token 

    def reset_persistence_token 
     record.reset_persistence_token 
    end 
end 
+0

멋진 작품! 나는 이것을 오랫동안 찾고 있었다. 아, 어떻게 다른 컴퓨터에 로그인했는지 사용자에게 알리거나 경고 할 수 있습니까? .. – jovhenni19

+0

로그 아웃 할 때 사용자가 다른 장치 또는 컴퓨터에서 연결되어 있으면 로그에 기록됩니다. 아웃. 최고의 UX가 아닙니다. –