数据库
首页 > 数据库> > mysql – 允许多个浏览器持久登录时的数据库问题

mysql – 允许多个浏览器持久登录时的数据库问题

作者:互联网

我正在尝试使用cookie实现“记住我”系统,该系统将记住浏览器中的用户,这意味着如果用户使用浏览器A登录网站并检查“记住我”,然后使用“记住我”登录浏览器B ,无论使用哪种浏览器,他都会继续自动登录. (在浏览器B中检查’记住我’不会破坏他在浏览器A中的持久登录).

为此,我设置了数据库,以便可以将多个密钥与用户ID一起存储.当用户登录我的网站时,会检查cookie的值.如果在数据库中找到该值,则会为用户分配一个新cookie,并更新数据库中的cookie密钥条目以匹配.其他密钥保持不变,以便其他浏览器的登录持久性不会受到影响.当用户手动注销时,将检查cookie,删除数据库中的相应条目,然后删除cookie.

当用户手动删除其cookie时,问题就出现了.如果用户这样做,我无法删除数据库中的相应条目.它将成为我数据库中的永久条目.当我没有尝试支持跨浏览器“记住我”时,这不是问题,但是通过允许存储多个cookie密钥已经成为一个问题.

有什么办法可以解决/避免这种情况吗?

持久登录有大量信息,但浏览器上的持久登录似乎永远不会被覆盖,所以任何帮助都会很棒. (也可以随意批评我的方法和任何安全问题.当我只允许每个用户“记住我”时,它似乎更安全,但跨浏览器的持久登录看起来像用户想要的功能).

我正在使用MySQLPHP.

解决方法:

我同意@ llion关于设置cookie过期的建议,在这种情况下,你可以schedule一个过程来清除dB中过期的cookie.但是,您可以向用户显示这一点,就好像每当您看到它们时,在extending their life之前无限期地使用cookie.

为了对这个问题感兴趣的任何其他读者的利益,我真的希望你的dB只是你的cookie的storing hashes.

标签:mysql,cookies,remember-me
来源: https://codeday.me/bug/20190826/1729371.html