Authlogic и несколько сеансов для одного и того же пользователя - PullRequest
7 голосов
/ 17 февраля 2010

Я использую Authlogic для управления сессиями в моем приложении.
Однако по умолчанию authlogic позволяет много раз входить в систему с разных компьютеров.
Я не хочу этого (пользователь платит, чтобы получить доступ, и я хочу, чтобы пользователи не делятся своими учетными записями).

Просматривая документацию Authlogic, я нашел около perishable_token. Но, пытаясь реализовать его, я просто получаю сообщение о том, что требуется persistence_token (когда это не так, как я использую скоропортящийся).

Как бы вы сделали это, используя функции Authlogic?

Спасибо:)

1 Ответ

17 голосов
/ 17 февраля 2010

Хорошо, поэтому скоропортящийся токен был абсолютно неправильным путем;)

Нам просто нужно сбросить маркер постоянства каждый раз, когда пользователь входит в систему или выходит из нее.Благодаря этому в моей модели 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
...