自定义双因素认证条件
编辑本页自定义双因素认证条件
在应用程序中,执行双因素身份验证时可能会有额外的需求,这超出了bundle自动执行的功能。在这种情况下,您需要实现
:
12 3 4 5 6 7 8 9 10 11 12
<?php使用Scheb\TwoFactorBundle\安全\TwoFactor\AuthenticationContextInterface;使用Scheb\TwoFactorBundle\安全\TwoFactor\条件\TwoFactorConditionInterface;类MyTwoFactorCondition实现了TwoFactorConditionInterface{公共函数shouldPerformTwoFactorAuthentication(AuthenticationContextInterface$上下文):保龄球{//你的条件在这里}}
将其注册为服务并配置服务名:
1 2 3
#配置/包/ scheb_2fa.yamlscheb_two_factor:two_factor_condition:acme.custom_two_factor_condition
绕过双因素认证
如果只是希望绕过特定身份验证器的2fa,请设置TwoFactorAuthenticator: FLAG_2FA_COMPLETE
属性将实现这一点。
例如,如果您正在构建一个自定义身份验证当使用验证器时,这将绕过2fa:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
<?php名称空间Acme\演示;使用Scheb\TwoFactorBundle\安全\Http\身份验证\TwoFactorAuthenticator;使用ob娱乐下载\组件\安全\核心\身份验证\令牌\TokenInterface;使用ob娱乐下载\组件\安全\Http\身份验证\AbstractAuthenticator;使用ob娱乐下载\组件\安全\Http\身份验证\护照\PassportInterface;类MyAuthenticator扩展AbstractAuthenticator{公共函数createAuthenticatedToken(PassportInterface$护照、字符串$firewallName):TokenInterface{$令牌=父::createAuthenticatedToken ($护照,$firewallName);//设置这个验证器绕过2fa$令牌->setAttribute (TwoFactorAuthenticator::FLAG_2FA_COMPLETE,真正的);返回$令牌;}/ /……}
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。