Laravel 身份验证重定向无效

Laravel Auth redirect not working

我正在使用 Laravel v5.2.39。如果您已登录,我只想重定向到仪表板。如果您手动更改 URL,它会将您重定向到主屏幕。我正在使用 auth 中间件,但它不起作用。有帮助吗?

我的 routes.php 文件:

  Route::get('/', function () {
       return view('welcome');
  })->name('home');

     Route::get('dashboard', [
         'uses' => 'UserController@getDashboard',
         'as' => 'dashboard',
         'middleware' => 'auth'
    ]);

我的UserController.php:

public function getDashboard(){
   return view('dashboard');
}

和授权中间件:

  public function handle($request, Closure $next, $guard = null)
{
    if (Auth::guard($guard)->guest()) {
        if ($request->ajax() || $request->wantsJson()) {
            return response('Unauthorized.', 401);
        } else {
             return redirect()->route('home');
        }
    }

    return $next($request);
}

我不知道,有什么问题。我也有一些登录和注册,但我不认为这是问题。如果有人想看,写信给我。

祝你今天愉快,谢谢。

如上所述,你试过这样的方法吗?

Route::group(['middleware' => 'auth'], function () {
     Route::get('dashboard', 'UserController@getDashboard')->name('dashboard');
});

或者您可以像这样在 class 的构造函数中添加中间件:

public function __construct() {
        $this->middleware('auth');
    }

另请参阅 the laravel documentation on using middleware with routes

尝试使用 'middleware' => 'auth:web' 代替 'middleware' => 'auth'

嘿,我不清楚你的问题,但这会对你有所帮助, 当你选择项目路径 localhost/project/ 时,它将重定向到 localhost/project/home URL 因为 URL 你可以分配任何函数

 Route::get('/', function () {
     return redirect('home');   
 });