Php 如何在登录Symfony 2前后识别用户?
我使用的是Symfony2.1,一个基于文档()的非常简单的登录表单和一个自定义的身份验证成功处理程序 匿名用户可以使用用户的会话ID执行一些存储在数据库中的操作。现在用户正在登录系统,我想使用用户ID更新保存的操作,以便登录的用户可以继续其工作。不幸的是,在success handler中,我已经有了一个更新的会话ID,我不知道action表中的哪些记录属于用户(因为它们存储在旧会话ID中,我无法访问[或者我可以吗?])Php 如何在登录Symfony 2前后识别用户?,php,session,authentication,symfony,Php,Session,Authentication,Symfony,我使用的是Symfony2.1,一个基于文档()的非常简单的登录表单和一个自定义的身份验证成功处理程序 匿名用户可以使用用户的会话ID执行一些存储在数据库中的操作。现在用户正在登录系统,我想使用用户ID更新保存的操作,以便登录的用户可以继续其工作。不幸的是,在success handler中,我已经有了一个更新的会话ID,我不知道action表中的哪些记录属于用户(因为它们存储在旧会话ID中,我无法访问[或者我可以吗?]) 处理这种情况的最佳做法是什么。是否应该使用存储在cookie中的令牌而不
处理这种情况的最佳做法是什么。是否应该使用存储在cookie中的令牌而不是会话id将操作保存在数据库中,或者是否存在内置机制,并且我正在尝试重新发明轮子,或者可能我问了错误的问题,因此找不到答案。在访问级别更改时生成新会话id的默认机制是最佳做法。您可以编写自己的身份验证,使用新会话ID和旧会话ID执行某些操作。但是,除非您真正知道自己在做什么,否则最好不要使用安全性和身份验证代码
最好的方法是按照您的建议,在数据库和cookie中保存一个令牌,并用它跟踪您的用户。如果您不再需要,请不要忘记清理数据库和cookies中使用过的代币。乔纳森·韦格最近在他的blug上写了一个非常类似的用例: