不同的模板/防火墙
编辑该页面不同的模板/防火墙
你用双因素身份验证在多个防火墙,你需要为每个防火墙呈现不同的形式。这是一个基本的解决方案:
创建一个新的表单渲染器类是这样的:
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
< ? php名称空间Acme\演示;使用Scheb\TwoFactorBundle\安全\TwoFactor\提供者\TwoFactorFormRendererInterface;使用ob娱乐下载\组件\HttpFoundation\请求;使用ob娱乐下载\组件\HttpFoundation\响应;使用ob娱乐下载\组件\安全\Http\FirewallMapInterface;使用嫩枝\环境;类CustomFormRenderer实现了TwoFactorFormRendererInterface{公共函数__construct(私人环境美元twigEnvironment、私人FirewallMapInterface美元firewallMap、私人数组美元模板/ /地图名称= >模板路径(防火墙){}公共函数renderForm(请求美元请求数组,美元templateVars):响应{美元firewallName=美元这- >firewallMap- >getFirewallConfig (美元请求)- >getName ();美元模板=美元这- >模板(美元firewallName];美元内容=美元这- >twigEnvironment- >呈现(美元模板,美元templateVars);美元响应=新反应();美元响应- >setContent (美元内容);返回美元响应;}}
注册它作为一个服务:
1 2 3 4 5 6 7 8 9
#配置/ services.yaml服务:acme.custom_form_renderer:类:Acme \ Demo \ CustomFormRenderer参数:- - - - - -“@twig”- - - - - -“@security.firewall.map”#这是防火墙的地图名字模板路径- - - - - -{主要:“安全/ 2 fa_google.html.twig”,管理:“管理/安全/ 2 fa_google.html.twig”}]
渲染器配置新服务的形式:
1 2 3 4 5
#配置/包/ scheb_2fa.yamlscheb_two_factor:谷歌:#“你觉得”或“电子邮件”,这取决于你使用双重提供者启用:真正的form_renderer:acme.custom_form_renderer
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。