保持用户随时登录


Keep User Logged In at All Times

通过使用$_SESSION['loggedin'] = true,我的用户将只登录到他们关闭浏览器。

我怎样才能让他们永远登录?(如Facebook或Stack Overflow)

首先,您确实需要将会话超时设置为更长的长度。我会保守地做30天,而不是之前推荐的time() * 9999999999999。将会话超时时间设置为较长时间将确保在浏览器关闭时会话不会被删除。

其次,您需要决定在哪里设置这个超时。如果您只在特定服务器上运行一个站点,只需修改php.ini文件。你在找一个叫session.gc_maxlifetime的东西

最后,你必须小心这样做。像Facebook和GitHub这样的网站要求你在更改帐户级别之前重新确认密码。因此,在设置长超时时要注意安全性。

默认的PHP会话是24分钟。你需要使用

$_SESSION['timeout'] = time() * 9999999999999; // infinity

确保每隔一段时间重新生成一个会话,以防止会话窃取。