Contributed by
Iltar van der Berg
in #23508.
Security 在任何程序中都是最讲究技巧的地方。Symfony Security 组件 助你解决绝大部分问题。然而,当开发人员维护的是“遵循着安全领域内最佳实践”的一级一类 security 时,向其提供简便安全工具就变得十分具有挑战。
在安全性上,我们的持续目标就是对某些功能进行简化。这就是为何在 Symfony 4.1 中我们不建议再使用 AdvancedUserInterface
。这个方法提供向 user 基类提供了账户“状态旗标”相关的额外方法:
1 2 3 4 5 6 7 8 9 | namespace Symfony\Component\Security\Core\User;
interface AdvancedUserInterface extends UserInterface
{
public function isAccountNonExpired();
public function isAccountNonLocked();
public function isCredentialsNonExpired();
public function isEnabled();
} |
这些方法最适用于你程序中的 domain logic 部分(译注:db相关逻辑)。我们决定在 Symfony 4.1 中抑制它,并且在 Symfony 5.0 中删除它。此接口并无替代选项。如果你需要这种类型的检查,创建一个 user checker,即可在用户认证时提供附加检查,确定该用户是否能够登录进来。