我的网站将提供“记住我”选项,通过该选项设置登录 cookie,并更新数据库中的 cookie 字段。虽然这对于只使用一个浏览器的用户非常有效,但当他们在多个浏览器上使用“记住我”选项时会出现问题:第二个浏览器覆盖数据库中的 cookie 列,从而使第一个 cookie 无法使用。在代码中,这看起来类似于:
浏览器1、登录并记住
$db->setLoginCookie();
setcookie(login cookie);
浏览器一、用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
有人可以建议解决此问题的方法吗?