2010-02-17 19 views
7

Używam Authlogic do zarządzania sesjami w mojej aplikacji.
Jednak domyślnie authlogic pozwala użytkownikowi być wielokrotnie zalogowanym z różnych komputerów.
Nie chcę tego (użytkownik płaci, aby uzyskać dostęp i chcę uniknąć użytkowników udostępniających swoje konta).Authlogic i wiele sesji dla tego samego użytkownika

Przeglądając dokumentację Authlogic, znalazłem o numerze perishable_token. Ale kiedy próbuję go zaimplementować, po prostu pojawia się błąd, mówiąc, że wymagane jest persistence_token (kiedy nie powinno być tak, jak używam nietrwałego).

Jak to zrobić, korzystając z funkcji Authlogica?

Dzięki :)

Odpowiedz

16

Ok więc zniszczalne tokena było absolutnie nie właściwa droga;)

My „tylko” trzeba zresetować wytrwałości żeton za każdym razem, gdy użytkownik loguje się lub wyloguje. Mając to w moim modelu UserSession, każdy użytkownik dostaje wylogowany z jakiejkolwiek innej sesji po zalogowaniu się.

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

miłą pracę! Szukałem tego od dawna. Ahm, jak możesz poinformować lub ostrzec użytkownika, że ​​był zalogowany na innym komputerze? .. – jovhenni19

+0

Uważaj jednak, że oznacza to, że po wylogowaniu, jeśli użytkownik jest podłączony z innego urządzenia lub maszyny, zostanie on wymuszony na zewnątrz. Nie najlepszy UX. –

Powiązane problemy