Php Zend会话最佳实践:对其他数据使用Zend Auth命名空间?

Php Zend会话最佳实践:对其他数据使用Zend Auth命名空间?,php,zend-framework,authentication,Php,Zend Framework,Authentication,我正在努力为我的Zend会话名称空间制定最佳配置 我需要在用户会话中跟踪两类数据。第一个是与用户相关的机密数据。当用户注销时,该信息应从会话中删除 第二类数据包含与特定用户代理的使用模式相关的非机密信息。一旦用户注销,它应该保持不变 我正在使用Zend_Auth,因此在会话中有一个Auth命名空间。我认为我应该在这个会话中保存其他与用户相关的数据。(我假设Zend_Auth::getInstance()->clearIdentity()将破坏整个命名空间) 此外,我认为我需要第二个名称空间来存储

我正在努力为我的Zend会话名称空间制定最佳配置


我需要在用户会话中跟踪两类数据。第一个是与用户相关的机密数据。当用户注销时,该信息应从会话中删除

第二类数据包含与特定用户代理的使用模式相关的非机密信息。一旦用户注销,它应该保持不变

我正在使用Zend_Auth,因此在会话中有一个Auth命名空间。我认为我应该在这个会话中保存其他与用户相关的数据。(我假设Zend_Auth::getInstance()->clearIdentity()将破坏整个命名空间)

此外,我认为我需要第二个名称空间来存储UA相关的信息,一个不会在注销时被破坏的名称空间

这听起来合理吗?我很想听听任何有使用Auth名称空间存储额外信息经验的人的意见


谢谢

听起来不错。我不明白为什么不。我个人在处理你的案件时,总是使用Zend_Session_命名空间。我认为您不需要清除会话,它在服务器上,无论如何都会被转储。只要您想清除标识是一回事,这样用户就会注销,但无论您存储的是什么,您都不需要清除。

在尝试了这一点后,我发现不使用Zend Auth的会话名称空间更安全。相反,我在会话中为注销时应删除的所有数据设置了一个备用名称空间,并使用namespaceUnset将其删除。

“当用户注销时,应将信息从会话中删除。”---有什么原因吗?嗨,zerkms,我需要从会话中清除他们的用户ID、电子邮件地址等,因为他们不再是“登录用户”。@Kim:只需创建新会话,不必关心旧会话。GC会的。@zerkms,不知道你的意思。如果会话中有第二个命名空间(即与Auth无关的命名空间),则在执行clearIdentity()时,第二个命名空间不会被销毁。你是说我应该手动销毁会话吗?@Kim:如果用户已经注销,你只需要生成新会话。没别的了。不要在意旧会话中丢失的数据-它将由GC清理。