【问题标题】:Laravel 8 multi auth not authenticating and redirectingLaravel 8 多重身份验证不进行身份验证和重定向
【发布时间】: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


【解决方案1】:

在您的 RouteServiceProvider.php 文件中,有一个拼写错误

 **RouteServiceProvider.php**   
     public static function redirectTo($gaurd){
            return $guard."/dashboard";
        }

必须是$guard 而不是$gaurd

【讨论】:

  • 但它仍然保持不变。
猜你喜欢
  • 1970-01-01
  • 2021-02-08
  • 1970-01-01
  • 2018-07-21
  • 2018-10-17
  • 1970-01-01
  • 1970-01-01
  • 2019-05-14
  • 2015-08-21
相关资源
最近更新 更多