私はちょうどあなたがリセットされた場合presistenceはあなたが意図した動作を実現することができますトークン、可能な解決策に走りました。あなたが述べたように
以前の私はそれを実装:usersテーブルにSESSION_KEYフィールドを追加し、現在のsession_idがログイン時にユーザのために保存されていることを確認してください:
class UserSession < Authlogic::Session::Base
after_save :set_session_key
def set_session_key
record.session_key = controller.session.session_id
end
end
次に、一般的なコントローラでのように何かをします同じアカウントで他のユーザーがログインしたときにユーザーを追い出すことができます:
before_filter :check_for_simultaneous_login
def check_for_simultaneous_login
# Prevent simultaneous logins
if @current_user && @current_user.session_key != session[:session_id]
flash[:notice] = t('simultaneous_logins_detected')
current_user_session.destroy
redirect_to login_url
end
end
出典
2011-11-25 00:20:57
vdB