Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon 我可以在Laravel Fortify中使用Authy代替Google Authenticator


我可以在Laravel Fortify中使用Authy代替Google Authenticator


Laravel Fortify是用于Laravel的后端身份验证软件包,它通过基于时间的一次性密码(TOTP)支持两因素身份验证(2FA)。它对TOTP客户端应用程序用户的使用是灵活且不可知的,这意味着它与Google Authenticator并不专门将您与众不同,并且可以与包括Authy在内的任何基于TOTP的身份验证应用程序一起使用。

Laravel Fortify为2FA做什么

Laravel Fortify提供了后端逻辑,以生成2FA秘密密钥,安全地存储它们,生成恢复代码,并在登录过程中验证TOTP令牌。它使用用户的两因素秘密密钥来验证支持标准TOTP算法的任何身份验证器应用程序生成的一次性密码(RFC 6238)。强化本身不授权或限制用户必须使用的移动或桌面应用程序。

###使用Authy代替Google Authenticator

Authy和Google Authenticator都是基于TOTP的Authenticator应用程序。两者都根据设置过程中共享的秘密密钥每30秒生成6位代码(通常通过扫描QR代码)。 Laravel Fortify与任何支持此标准的客户应用程序无缝地运行。因此,您绝对可以使用Authy而不是使用Laravel Fortify的Google Authenticator。

在此上下文中有关Authy和Google Authenticator的关键点:

- 兼容性:Authy使用与Google Authenticator相同的TOTP标准,因此Laravel Fortify中的任何2FA设置都将使用任何一个应用程序,而不会更改Laravel后端。

- 用户体验:Authy提供了比Google Authenticator的一些优点,例如跨设备(多设备支持),加密的云备份和桌面应用程序(历史上,当前以移动方式为中心)同步令牌,可以创建更好的用户体验。

- 安全性:Authy在应用程序上具有PIN保护和生物识别安全性的选项,并具有加密的备份,而Google Authenticator缺少加密的云备份和多设备同步。这些功能可能会使从用户的角度来看设备丢失的验证更加友好和有弹性。

- Laravel Fortify中的设置:Laravel Fortify实现的唯一更改是向用户提供QR码或秘密键,以在Authy而不是Google Authenticator中扫描。由于两个应用程序都读取相同的格式,因此QR码加固可以使用任何一个应用程序生成框架。

###实施注意事项

1。前端QR代码显示:启用2FA时,加固通常会根据秘密键生成QR码。该QR码可以通过Authy或Google Authenticator应用程序扫描。您的前端只需要渲染此QR代码,用户可以选择其首选应用程序。无需更改后端代码。

2.确认步骤:Laravel Fortify有时会遇到一个问题,即在不确认输入的代码的情况下启用2FA,如果他们无法正确完成设置,则可以将其锁定。在扫描QR代码后,用户输入由Authy(或Google Authenticator)生成的代码的确认步骤是最佳实践。无论使用哪种身份验证应用程序,这都适用。

3.恢复代码:如果用户失去对Authenticator应用程序的访问权,则Fortify为2FA旁路提供了恢复代码。这些代码独立于选择应用程序(Authy或Google Authenticator)的工作。

###从用户角度来看差异摘要

- 身份优势:**
- 2FA令牌的多设备支持和自动同步。
- 加密的云备份,以避免在设备丢失上丢失令牌。
- 该应用程序的可选PIN和生物识别安全性。
- 桌面和浏览器应用程序支持(尽管截至2024年初,某些桌面应用程序已停用)。
- 基于推动的身份验证(尽管不是标准TOTP,但与其他实现更相关)。

-Google Authenticator优势:**
- 更广为人知和得到许多服务的支持。
- 更简单的应用程序,不太复杂的备用基础架构(没有帐户,没有备份)。
- 在初始设置后完全离线(无云备份)。

从Laravel加强集成的角度来看,这些差异并非如此,因为来自任何一个应用程序的TOTP代码都通过强化以相同的方式验证。

###强化使用的其他注释

Laravel Fortify不提供前端视图或UI;它提供了用于身份验证的后端服务。许多开发人员将Fortify与Laravel Jetstream或其他UI套件一起使用。不管UI如何,关键是Fortify生成2FA秘密并验证代码,将Authenticator应用程序的选择留给用户。

如果需要自定义以更好地改善UX或处理帐户恢复更好(添加“ Twi_factor_confirded”标志,自定义视图等),则可以在强化层中实现,但独立于Authiy和Google Authenticator之间的选择。

### 结论

是的,您可以在Laravel Fortify中使用Authy而不是Google Authenticator,而您的后端2FA实现无需更改。这两个应用都使用Fortify完全支持的相同TOTP标准。选择Authy可以为您的用户提供增强的可用性和备份功能,尤其是在设备丢失或多设备访问的情况下,但是从Laravel开发人员的角度来看,集成保持不变。用户只需扫描Fortify提供的QR码,并使用其首选应用程序设置2FA。

这种灵活性是通过设计,使Laravel Fortify可以使用任何应用程序生成的标准TOTP代码,包括但不限于Google Authenticator,Authy,Microsoft Authenticator等。