2011-12-22 105 views
3

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

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

2-会话cookie在客户端生成,持有该会话的标识符。

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

4-如果一个用户离开浏览器中打开很长一段时间(超过gc_maxlifetime更长)垃圾收集器会删除该会议的文件,而会话cookie将持续到它时,在浏览器关闭的已删除。

现在Zend框架的rememberMe()函数是做什么的?

a-它是否在浏览器中创建了一个会话cookie,并持续在呼叫中指定的时间?

b-它是否增加了存储在服务器上的会话文件的使用寿命,以便垃圾收集器不会删除该文件?

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

在此先感谢。

+0

1)通常它们存储在内存中。 2)它也可以通过URL参数访问(例如,如果cookie被禁用)。 3)cookie和会话寿命是独立的设置,与GC本身无关;关闭浏览器通常不会删除Cookies 4)再次,会话的到期计时器与GC – Viruzzo 2011-12-22 16:17:26

回答

2

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

它将cookie设置为超出浏览器退出状态,并设置其到期时间。请注意,这是“记住”用户登录名的所有网站所做的。

+1

错误没有关系。这只是实现“记住我”功能的一种方式。并非所有的网站都使用这种说法 – 2013-02-11 14:37:08