【问题标题】:Laravel - Implementing Fortify two-factor authentication without JetstreamLaravel - 在没有 Jetstream 的情况下实现 Fortify 两因素身份验证
【发布时间】:2021-01-16 01:41:53
【问题描述】:

我正在努力弄清楚如何在不使用 Jetstream 的情况下实现 Laravel/Fortify (https://github.com/laravel/fortify) 提供的 2FA。目前没有关于如何操作的文档。

我在 config/fortify.php

中启用了twoFactorAuthenication
'features' => [
    // Features::registration(),
    // Features::resetPasswords(),
    // Features::emailVerification(),
    // Features::updateProfileInformation(),
    Features::updatePasswords(),
    Features::twoFactorAuthentication([
        'confirmPassword' => true,
    ]),
],

我在Providers\FortifyServerProvider

中注册了twoFactorChallengeView
public function boot()
{    
    Fortify::twoFactorChallengeView('auth.two-factor-challenge');

我用来测试登录的帐户在two_factor_secrettwo_factor_recovery_code 字段中设置了值

我什至将我的代码与具有 2FA 的工作应用程序(全新安装的 Laravel 8 和 Jetstream)进行了比较,但我看不出配置有任何差异。

我能够成功验证,但从未触发 2FA 质询。

我错过了什么?

【问题讨论】:

  • 什么不适合你?我认为您确实发布了强化资产。路线现在可用吗?
  • 我无法触发 2FA。如果我手动导航到 /two-factor-challenge 路线,它会立即重定向我。所以路由已注册,但逻辑不起作用。

标签: laravel laravel-8


【解决方案1】:

在文件 App\Models\User.php 中

use Laravel\Fortify\TwoFactorAuthenticatable;
class User extends Authenticatable
{
    use TwoFactorAuthenticatable;
}

【讨论】:

  • 谢谢!这正是我错过的。他们真的应该发布一些适当的文档......
  • 这对我不起作用。全新安装,轻松和强化,但没有挑战两个因素,只需登录。
  • @user1721620 你找到解决办法了吗?
  • 不,没有任何解决方案。所以我用电子邮件而不是 APP 进行 2step
猜你喜欢
  • 2020-12-08
  • 1970-01-01
  • 1970-01-01
  • 2016-09-09
  • 2012-12-02
  • 2022-01-03
  • 1970-01-01
  • 2019-07-21
  • 1970-01-01
相关资源
最近更新 更多