Ruby on Railsアプリケーションでパスワード認証に「devise」を使用しています。ログインに成功してブラウザを閉じて新しいブラウザウィンドウを開くと、私はまだログインしています。私はChromeを使用していますが、私はすべてのChromeインスタンスを閉じてから新しいものを開きます。私はまだログインしています。IEとFirefoxも同様です。ブラウザでセッションを作成する方法をクリアするには?
私はウィンドウが閉じていると仮定し、新しいウィンドウを開くと、サーバーとブラウザの間に新しいセッションを確立する必要がありますか?もし私がそれを達成するにはどうすればいいですか?
私は、ブラウザウィンドウのonbeforeunload
イベントでログアウトボタンをクリックしようとしましたが、どのフォーム送信またはリンクをクリックしてもアプリケーションのログアウトとしては機能しません。
window.onbeforeunload = function() {
$('#logout_cls').click();
};
およびセッションコントローラにAJAX
要求を送信しようとしたセッションをクリアするアクションを破壊します。
jQuery(window).bind(
"close",
function(event) {
$.ajax({
type: 'DELETE',
dataType: 'json',
url: $('#logout_cls').attr('href')
});
});
しかし、これはすべて機能しませんでした。
既に覚えやすい戦略が無効になっています。私のモデルは次のとおりです。devise:database_authenticatable、:recoverable、:trackable、:validatable 考えられますか? – user380692
'db \ schema.rb'に行きます。ユーザーの表を確認してください。それは 'remember_created_at'または' remember_token'という属性を持っていますか?それがある場合は、それらを削除する必要があります。 – Ashitaka
これを解決できましたか? – Ashitaka