如何创建并启用自定义用户跳棋

编辑该页面

警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 5.2,不再维护。

这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。

如何创建并启用自定义用户跳棋

在身份验证的用户,可能需要额外的检查来验证,如果确定是允许用户登录。通过定义一个自定义用户检查器,您可以定义每个防火墙应该使用哪个检查程序。

创建一个自定义用户检查

用户检查是必须实现的类UserCheckerInterface。这个接口定义了两个方法checkPreAuth ()checkPostAuth ()执行检查之前和之后的用户身份验证。如果一个或多个条件不满足,抛出一个异常,扩展了AccountStatusException类。考虑使用CustomUserMessageAccountStatusException,扩展了AccountStatusException并允许自定义错误消息显示给用户:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30 31 32 33 34
名称空间应用程序\安全;使用应用程序\实体\用户作为AppUser;使用欧宝娱乐app下载地址\组件\安全\核心\异常\AccountExpiredException;使用欧宝娱乐app下载地址\组件\安全\核心\异常\CustomUserMessageAccountStatusException;使用欧宝娱乐app下载地址\组件\安全\核心\用户\UserCheckerInterface;使用欧宝娱乐app下载地址\组件\安全\核心\用户\用户界面;UserChecker实现了UserCheckerInterface{公共函数checkPreAuth(用户界面美元用户):无效{如果(!美元用户运算符AppUser) {返回;}如果(美元用户- >isDeleted ()) {/ /消息传递给这个异常是显示给用户CustomUserMessageAccountStatusException (“你的用户帐户已不复存在。”);}}公共函数checkPostAuth(用户界面美元用户):无效{如果(!美元用户运算符AppUser) {返回;}/ /用户账户过期了,用户可能会通知如果(美元用户- >isExpired ()) {AccountExpiredException (“……”);}}}

5.1

CustomUserMessageAccountStatusException类是在Symfony 5.1中引入的。欧宝娱乐app下载地址

启用自定义用户检查

接下来,确保你的用户检查程序注册为一个服务。如果你使用默认的服务。yaml的配置,服务自动注册。

剩下的要做的就是检查添加到所需的防火墙,用户的价值是服务id检查程序:

  • YAML
  • XML
  • PHP
1 2 3 4 5 6 7 8 9
#配置/包/ security.yaml#……安全:防火墙:主要:模式:^ /user_checker:App \安全\ UserChecker#……
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。