我想知道当用户使用或不使用“保持登录状态”复选框登录网站时会发生什么。 根据我的理解,start_session在服务器上创建一个变量,并将会话ID存储在cookie中的客户端浏览器上,在关闭所述浏览器时销毁。 根据这个推理,我想检查“保持登录状态”复选框会将到期日期推迟N秒,这可以通过设置来实现:
setcookie(session_name(), session_id(), time()+N);
在这种情况下,我认为不需要使用cookie,至少对于日志记录过程而言。 我是对的还是非常错的? :)
答案 0 :(得分:2)
有一些典型的方法可以处理“保持登录状态”框...
请注意,大多数解决方案不涉及实际 登录的用户;他们只是这样做,以便用户看不到另一个密码提示。保持会话存活并将会话ID存储在持久性cookie中在技术上是可行的,但是对于拥有大量用户的站点,这将是服务器上额外的空间和负载。
答案 1 :(得分:1)
我编写这样的选项的方法是创建一个令牌并将其与用户ID一起存储在数据库中。然后我将该令牌作为cookie提供给浏览器。无论何时页面请求完成,我都会检查用户是否有活动会话,然后是否有此令牌cookie。如果他们有令牌cookie,我会查看数据库以查看它是否有效,如果是,则创建一个具有该用户ID的会话。
然而,我确信这是一种不安全,容易破解的方法。