php - 登录后 Laravel 两个因素不起作用
问题描述
当我在激活两个因素后登录时,我输入验证密钥的字段没有打开。直接登录。我的问题可能是由什么引起的?
FortifyServiceProvider.php
public function boot()
{
Fortify::createUsersUsing(CreateNewUser::class);
Fortify::updateUserProfileInformationUsing(UpdateUserProfileInformation::class);
Fortify::updateUserPasswordsUsing(UpdateUserPassword::class);
Fortify::resetUserPasswordsUsing(ResetUserPassword::class);
RateLimiter::for('login', function (Request $request) {
return Limit::perMinute(5)->by($request->email.$request->ip());
});
RateLimiter::for('two-factor', function (Request $request) {
return Limit::perMinute(5)->by($request->session()->get('login.id'));
});
Fortify::confirmPasswordView(function (){
return view('user.pages.confirm-password');
});
Fortify::twoFactorChallengeView(function (){
return view('user.pages.two-factor-challenge');
});
}
强化.php
'features' => [
Features::registration(),
Features::resetPasswords(),
// Features::emailVerification(),
Features::updateProfileInformation(),
Features::updatePasswords(),
Features::twoFactorAuthentication([
'confirmPassword' => true,
]),
],
路由.php
Route::group(['middleware' => ['auth', 'roles:0'], 'prefix' => 'live'], function () {
Route::get('/dashboard', [DashboardController::class, 'index'])->name('user.dashboard');
模态/用户.php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Fortify\TwoFactorAuthenticatable;
class User extends Authenticatable
{
use Notifiable;
use TwoFactorAuthenticatable;
解决方案
我更新了 wep.php 的路由来强化而不是 Auth:
//Auth::routes(['register' => false]);
Route::group(['middleware' => ['guest', 'throttle:'.config('fortify.limiters.login')]], function() {
Route::get('/login', [AuthenticatedSessionController::class, 'create'])->name('login');
Route::post('/login', [AuthenticatedSessionController::class, 'store']);
});
Route::post('/logout', [AuthenticatedSessionController::class, 'destroy']) ->name('logout');
推荐阅读
- javascript - 响应式菜单在网站上不起作用
- c# - 检查两个值的空字符串或空字符串 C#
- javascript - Jquery选择特定的表格单元格并填充列表
- rest - AppSync 批量调用嵌套属性
- python-3.x - 不断收到错误“OSError:[WinError 193] %1 不是有效的 Win32 应用程序”
- android - Android:从矢量 xml 中提取 android:pathData
- python - 有没有办法从所有 30 个数据框中只提取一列?
- ios - 尽管有一个初始化,为什么我得到“在初始化之前使用变量'网格'”错误?
- typescript - 如何使用 describe.each 为 jest 测试添加类型?
- python - 直接打开 'cmd.exe' 或通过 'qprocess' pyside 的区别