如何在PHP中实现自动注销?

5
我需要在我的应用程序中设置自动注销系统。 如果用户长时间未使用应用程序,则应在30分钟后重新登录。 这就是我需要的。当最后访问时间超过30分钟时,用户应该使用他们的凭据重新登录。 (目前我使用用户表(数据库)中的Lastaccesstime字段进行自动注销,并为每个页面加载比较lastaccesstime和当前时间,但我认为这不是正确的方法。) 请问有没有其他实现方式? 提前致谢。
2个回答

7

你应该指定SESSION LIFETIME并只使用$_SESSION来查看用户是否已登录:

ini_set('session.cookie_lifetime',(60*30)); // 60 seconds times 30 = 30 minutes

这样做会不会在30分钟后注销活跃用户? - Anthony Forloney
4
不,每次活跃用户访问页面时,cookie都会被重置。 - Konerak
2
不,每个请求都会重置cookie,因此重新启动计时器。 - Amadan

3
如果您正在使用cookie来保持用户登录状态,只需为其设置适当的TTL即可。
对于30分钟的过期时间,在登录时以以下方式设置cookie:
setcookie($COOKIE_NAME, $COOKIE_VALUE, time() + 60 * 30);

或者,您可以使用session_set_cookie_params

session_set_cookie_params(60 * 30); // takes lifetime as first argument

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接