【问题标题】:Zend framework Remember Me functionZend框架Remember Me功能
【发布时间】:2011-12-23 00:20:15
【问题描述】:

我想使用 Zend 框架的 remeberMe() 函数为用户创建持久的登录体验。 以下是我对 Sessions 的了解:

1-当用户登录网站时,会在文件系统的服务器上为他创建一个会话。

2-在客户端生成一个会话 cookie,保存会话的标识符。

3-如果用户关闭浏览器,会话 cookie 将被删除,而服务器上的会话将持续到垃圾收集器删除会话文件(在 gc_maxlifetime 设置的时间之后)。 p>

4- 如果用户长时间打开浏览器(超过 gc_maxlifetime),垃圾收集器将删除会话文件,而会话 cookie 将持续到浏览器关闭时被删除.

现在 Zend 框架的 rememberMe() 函数究竟做了什么?

a- 它是否会在浏览器中创建一个会话 cookie,该会话 cookie 会持续调用它指定的时间?

b- 是否会增加存储在服务器上的会话文件的生命周期,以便垃圾收集器不会删除该文件?

c- 如果它不影响服务器上的会话文件,那么当会话在服务器端过期但会话 cookie 仍然可用时会发生什么?会被当场删除还是解除直到自动过期?

提前致谢。

【问题讨论】:

  • 1) 通常它们存储在内存中。 2) 它也可以通过 URL 参数访问(例如,如果 cookie 被禁用)。 3)cookie和session的生命周期是分开的设置,与GC本身无关;关闭浏览器通常不会删除 cookie 4) 再次,会话的过期计时器与 GC 无关

标签: php zend-framework session cookies session-cookies


【解决方案1】:

http://framework.zend.com/manual/en/zend.session.global_session_management.html “在会话开始之前使用 Zend_Session::rememberMe() 来控制持久会话 cookie 过期之前的时间长度。”

它将 cookie 设置为在浏览器退出后继续存在,并设置其过期时间。请注意,所有“记住”用户登录信息的网站都会这样做。

【讨论】:

  • 错误。这只是实现“记住我”功能的一种方式。并非所有网站都使用这种方法
猜你喜欢
  • 2010-12-07
  • 2011-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-14
  • 2012-04-21
  • 2012-04-29
相关资源
最近更新 更多