是否有一种简单的方法可以确定是否使用ZF2启用了会话cookie?
我正在使用Zend\Authentication\AuthenticationService
在我的ZF2应用程序中登录用户。当我调用authenticate()
方法时,我得到一个有效的结果并设置了标识($result->isValid() == true
并且$result->getIdentity()
返回标识)。然后我路由到另一个动作,如果禁用cookie,身份将丢失。我没有得到任何例外,我不知道如何在调用authenticate()
之后测试身份是否已成功存储在会话中。我只是在下一个请求中发现身份已经丢失,这使得处理起来更加困难。
答案 0 :(得分:1)
根据评论,在设置cookie之后无法检查,您唯一能做的就是查看后续请求中是否存在cookie。这应该不是一个常见的问题,很少有用户完全禁用cookie,那些会在许多站点上出现问题。
我在过去的项目中做的一件事是在登录后将用户重定向到的URL添加查询字符串参数 - 类似于?justLoggedIn=1
。然后,如果此参数存在,则应用知道用户应该登录,因此检查cookie。如果它不存在,它会再次将用户重定向到用户友好的“看起来你已禁用cookie ...”页面并提供一些帮助。