0

我的网站将提供“记住我”选项,通过该选项设置登录 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

有人可以建议解决此问题的方法吗?

4

0 回答 0