25

この Rails アプリが heroku でホストされているミステリー ポイント X で、ログインしているユーザーが突然別のユーザーとしてログインするようになりました。認証にdevise gemを使用しています。

これは、私たちが知っている 2 人のユーザーに発生しました。現在、この問題の根本的な原因を突き止めています。

私が今しなければならないことは、ユーザーに再度ログインを強制するために、すべてのデバイス セッションを無効にすることです。ユーザーがログインすると、問題は解決したようです。

secret_token をリセットしようとしましたが、再度ログインする必要はありませんでした。次に、Web dyno を縮小してから元に戻しました。アプリも再起動しました。セッションをリセットするために secret_token の変更を取得しようとしています。

他のアイデアはありますか?

4

9 に答える 9

25

セッション Cookie 名を変更して、config/initializers/session_store.rb にあるすべてのセッションを無効にできるはずです。

YourApp::Application.config.session_store :cookie_store, key: '_change_me_session'
于 2013-05-06T20:29:33.837 に答える
1

Devise にはtimeoutableというものがあります。それで作業できますか?

于 2013-05-06T20:01:23.720 に答える
0

sign_out_all_scopes(lock = true) ⇒ オブジェクト

すべてのアクティブなユーザーまたはスコープをサインアウトします。このヘルパーは、ワンクリックですべてのロールをサインアウトするのに役立ちます。これにより、warden のすべてのスコープがサインアウトされます。少なくとも 1 つのログアウトがあった場合は true を返し、すべてのスコープでユーザーがログインしていない場合は false を返します。

ソース: http://www.rubydoc.info/github/plataformatec/devise/Devise/Controllers/SignInOut

于 2016-03-10T11:48:38.933 に答える