web-dev-qa-db-ja.com

ChromeはセッションCookieを削除しません

私は次のようにJavaScriptでセッションCookieを設定しようとしています:

document.cookie = 'name=alex; path=/'

ただし、ブラウザを終了して再度起動しても、Chromeは削除しません。

FirefoxとOperaでチェックインしましたが、どちらも意図したとおりに動作します-ブラウザの終了時にセッションCookieを削除します。

Chromeは有効期限のルールを無視しているだけですか?

複数のOSをチェックインしたところ、Windows XPおよびUbuntuのChromeではセッションCookieが削除されますが、Mac OSX Lionでは削除されないことがわかりました。

173
mgs
202
Jesper

「Browsing session end」で有効期限が切れるように設定されたCookieで同じ問題が発生しました。

残念ながら、それはそうではなかったので、ブラウザの設定で少し遊んだ。

ブラウザーを閉じたときに開いたタブを記憶する機能が問題の根本であることが判明しました。 (この機能の名前は「起動時」-「中断したところから続行」。少なくとも現在のChromeのバージョンでは)。

これはOperaおよびFirefoxでも発生します。

25
Nikola Kolev

この問題が発生しました。ブラウザーを閉じた後でも、多くのchromeプロセスが実行されていることに気付きました。これらの論文はそれぞれ私のChrome拡張機能からのものであることがわかりました。

高度な設定の下で、'Continue running background apps when Google Chrome is closed'のチェックを外し、セッションCookieが正常に機能するようになりました。

ユーザーがブラウジングを完了するとセッションCookieがクリアされることを期待しているコーディングを行っている開発者全員にとって、依然として苦痛です。

20
NSjonas

これはおそらく、ブラウザを閉じた後もChromeがバックグラウンドで実行されているためです。以下を実行して、この機能を無効にしてみてください。

  1. Chrome:// settings /を開きます
  2. [詳細設定を表示...]をクリックします
  3. [システム]セクションに移動し、[Google Chromeが閉じているときにバックグラウンドアプリの実行を継続する]を無効にします。これにより、Chromeが完全に閉じられ、セッションCookieが削除されます。

ただし、Chromeは閉じるのではなく、開始時に以前のセッションCookieをチェックして削除する必要があると思います。

9
Justmyhobby

Chromeの詳細設定の下で、両方ともチェックを外さなければなりませんでした。

  • 「Google Chromeが閉じているときにバックグラウンドアプリを実行し続ける」
  • 「中断したところから続行」、「起動時」
5
emottet

簡単な代替方法は、新しい sessionStorage オブジェクトを使用することです。コメントによると、「中断したところから続行」がチェックされている場合、sessionStorageは再起動間で持続します。

3
TimDog

Windows 8.1の「document.cookie」で同じ問題が発生しました。Chromeがcookieを削除する唯一の方法はタスクマネージャから閉じることでした(実際には素晴らしい方法ではない)ため、バックエンドからcookieを管理するか、 「js-cookie」など。

2
TurKux

Google Chromeでハングアウト拡張機能を削除しようとしましたか?これは、すべてのウィンドウを閉じてもChromeの実行を強制するためです。

私も問題に直面していましたが、今は解決しました。

1
Salman Ali Khan

解決策は、sessionStorage、FYIを使用することです。 https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage

0
Sky Yip

ChromeでセッションIDが保存されるというこの問題が発生しましたが、中断したところから続行するオプションを無効にするという考えが好きではありません。 WebサイトのCookieを調べて、ログインページのセッションID Cookieを見つけました。削除しても問題は解決しませんでした。ドメインを検索しましたが、ドメインに別のセッションID Cookieがありました。削除bothセッションID Cookieは手動で問題を修正し、Cookieを復元できるブラウザを閉じて再度開きませんでした。

0
Lauren Tariel

Phpセッションcookieのドメインを設定すると、ブラウザは30秒程度保持しているようです。タブまたはブラウザウィンドウを閉じても問題はないようです。

したがって、次のようなものを使用してセッションを管理している場合、Cookieが予想よりも長くブラウザでハングする可能性があります。

ini_set("session.cookie_domain", 'www.domain.com');

ハングしているCookieを取り除く唯一の方法は、セッションCookieのドメインを設定するコード行を削除することです。また、session_set_cookie_params()関数にも注意してください。ドメインにプレフィックスを付けるドットも、問題に関係がないようです。

これは、セッションが破棄された後にphpがヘッダーでセッションCookie(PHPSESSID=b855ed53d007a42a1d0d798d958e42c9)を送信するため、PHPのバグである可能性があります。または、サーバーの伝播の問題かもしれませんが、テストはプライベートサーバーで行われたので、そうは思いません。

0
SurferJoe