0

私のサイトは「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

誰かがこの問題の回避策を提案できますか?

4

0 に答える 0