备份代码

编辑本页

备份代码

先决条件

要使用此功能,必须安装scheb / 2 fa-backup-code

1
编译器需要scheb/2fa-backup-code

它的作用

备份码是一次性的认证码,可以代替实际的认证码使用。当身份验证设备不可用时,并且您必须通过双重身份验证过程时,它们意味着紧急代码。

启用配置中的特性:

1 2 3 4
#配置/包/ scheb_2fa.yamlscheb_two_factor:backup_codes:启用:真正的#是否启用备份代码功能

备份代码必须从用户对象中提供。用户实体必须实现Scheb \ TwoFactorBundle \ \ BackupCodeInterface模型.这里有一个例子:

12 34 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 35 36 37 38 39 40 41 42 43 44 45
<?php名称空间Acme演示实体使用学说ORM映射作为ORM使用SchebTwoFactorBundle模型BackupCodeInterface用户实现了BackupCodeInterface/ * * *@ORM\列(type = " json ") * /私人数组backupCodes= [];/ /[…]/** *检查是否为有效的备份代码。* /公共函数isBackupCode(字符串代码保龄球返回in_array (代码->backupCodes);}/** *使备份代码无效*/公共函数invalidateBackupCode(字符串代码无效关键函数的作用是=代码->backupCodes);如果关键= = !) {设置->backupCodes [关键]);}}/** *添加备份代码*/公共函数addBackUpCode(字符串backUpCode无效如果(!in_array (backUpCode->backupCodes)) {->backupCodes [] =backUpCode;}}}

该示例假设已经为该用户生成了代码。除此之外,您应该根据自己的喜好实现备份代码(重新生成)。

自定义备份代码管理器

如果您不喜欢这种实现方式,您还可以拥有自己的备份代码管理器。创建服务实现Scheb\ TwoFactorBundle\安全\ TwoFactor\备份\ BackupCodeManagerInterface并在配置中注册它:

1 2 3 4
#配置/包/ scheb_2fa.yamlscheb_two_factor:backup_codes:经理:acme.custom_backup_code_manager使用自定义备份代码管理器
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。