私のサイトは「Rememberme」オプションを提供します。このオプションを使用すると、ログインCookieが設定され、データベース内のCookieフィールドが更新されます。これは1つのブラウザのみを使用するユーザーには完全に機能しますが、複数のブラウザで「remember me」オプションを使用すると問題が発生します。2番目のブラウザがデータベースのCookie列を上書きし、最初のCookieを使用できなくなります。コードでは、これは次のようになります。
ブラウザ1、ログインして覚えておいてください
$db->setLoginCookie();
setcookie(login cookie);
ブラウザ1、Cookieでログイン
if (db_has_valid_cookie()) login();
else show_login_form();
ブラウザ2、ログインして覚えておいてください
$db->replaceCookie();
setcookie(new cookie);
ブラウザ1、Cookieを使用してログインを試みます
if (db_has_valid_cookie()) login(); //Does not work because it's been overridden
else show_login_form(); //Login form is shown
誰かがこの問題の回避策を提案できますか?