にログインすることができないことを保証することはAuthlogicで簡単な方法があります(何もブラウジングthe docsを発見していない) にユーザーが既にUserSessionオブジェクトを持っている場合UserSessionが作成できないことを保証?Authlogic:ユーザーが二回
つまり、ユーザーが同じ資格情報で2回ログインできないようにします。
更新:この問題の解決策を見つけるために泥棒の回答に関するコメントを確認してください。お使いのユーザーセッションコントローラで
にログインすることができないことを保証することはAuthlogicで簡単な方法があります(何もブラウジングthe docsを発見していない) にユーザーが既にUserSessionオブジェクトを持っている場合UserSessionが作成できないことを保証?Authlogic:ユーザーが二回
つまり、ユーザーが同じ資格情報で2回ログインできないようにします。
更新:この問題の解決策を見つけるために泥棒の回答に関するコメントを確認してください。お使いのユーザーセッションコントローラで
:アプリのコントローラで
before_filter :require_no_user, :only => [:new, :create]
:
def require_no_user
if current_user
store_location
flash[:notice] = "You must be logged out to access this page"
redirect_to account_url
return false
end
end
私の心にクリーンなアプローチがUserSessionクラスのコールバックを使用することです。同様に、before_createコールバックを定義し、適切な場合にモデルを無効とマークすることができます。しかし、自分でこれを試していない。ここにはthe docs for the Callbacks moduleがあります。
はい、require_no_userメソッドは、ユーザーがログインしていない場所でも使用できますそれはその反対のものとよく対になる:require_user – jcoffey
私は同意する。ここに追加するものはありません。 –
さらに、誰かがログインしているときに、ログインリンクも非表示にするのが最善の方法です。 –
@thief:あなたは詳しく説明できますか? YがクライアントAのAliceとしてすでにログインしているときに、これがXをクライアントBのAliceとしてログインさせる方法を理解していません。 – Javier
私はあなたの質問に誤解しました。この場合、コールバックが必要です。例えば、あなたのUserSessionModelで、コールバック 'before_persisting'を使用して、アカウントがAuthLogicメソッド 'logged_in?'を持つ別のマシンにログインしているかどうかを確認します。 - http://authlogic.rubyforge.org/classes/Authlogic/ActsAsAuthentic/LoggedInStatus/Methods/InstanceMethods.html :: – jcoffey