【发布时间】:2021-11-27 01:23:59
【问题描述】:
我的管理控制器扩展了控制器类,在那里我使用了方法来加载视图页面并通过了守卫。 config/auth.php 也通过添加管理员守卫和提供程序进行了修改。在 app/Actions/Fortify 文件夹中,我添加了 AttemptToAuthenticate 和 RedirectIfTwoFactorAuthenticatable 类并更改了命名空间。我的管理控制器也扩展了 Guard。用户的 RedirectIfAuthenticated 中间件和管理员的 adminRedirectIfAuthenticated 通过将保护传递给句柄方法中的重定向。所有中间件都已注册。在 providers/FortifyServiceProvider.php 文件中,我将分类添加到了寄存器中。
**FortifyServiceProvider.php**
public function register()
{
$this->app->when([
adminController::class,
AttemptToAuthenticate::class,
RedirectIfTwoFactorAuthenticatable::class
])->needs(StatefulGuard::class)->give(function(){
return Auth::guard('admin');
});
}
**LoginResponse.php:**
public function toResponse($request)
{
return $request->wantsJson()
? response()->json(['two_factor' => false])
: redirect()->intended('admin/dashboard');
}
**RouteServiceProvider.php**
public static function redirectTo($gaurd){
return $guard."/dashboard";
}
**Web.php**
Route::group(['prefix'=>'admin','middleware'=>['admin:admin']],function(){
Route::get('/login',[adminController::class,'loginform']);
Route::post('/login',[adminController::class,'store'])->name('admin.store');
}
);
Route::middleware(['auth:sanctum,web', 'verified'])->get('/dashboard', function () {
return view('dashboard');
})->name('dashboard');
Route::middleware(['auth:sanctum,admin', 'verified'])->get('/admin/dashboard', function () {
return view('dashboard');
})->name('dashboard');
**Login.blade.php**
<form action="{{isset($guard)? url($guard.'/login'):route('login')}}" method='POST'>
@csrf
但是当我登录时没有错误或重定向。它只是停留在同一页面上。
【问题讨论】:
-
错字?
redirectTo($gaurd)
标签: laravel