Symfony 2 Logout(UserInterface :: eraseCredentials)

Jie*_*eng 11 authentication symfony

我想eraseCredentials是为了退出?如果是这样,我如何清除Doctrine实体的会话?

Eln*_*mov 28

不,eraseCredentials()用于在持久化令牌之前擦除敏感数据 - 无论是序列化还是数据库.

要以编程方式注销用户,您可以使用以下命令:

$this->get('security.context')->setToken(null);
$this->get('request')->getSession()->invalidate();
Run Code Online (Sandbox Code Playgroud)

  • 不要删除任何需要持久化的内容.有些人存储加密密码和临时明文密码.在持久化用户时,他们检查明文,然后如果它存在,他们对其进行加密并存储在加密的字段中.明文密码并不意味着保留,因此擦除它是安全的.如果你不删除它,它将被序列化到用户的会话中并将暴露给其他人 - 这首先否定了加密密码的所有好处. (4认同)