Laravel Auth重定向无法正常工作

时间:2016-07-01 21:46:55

标签: php laravel authentication middleware

我使用的是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');
}

和auth中间件:

  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);
}

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

祝你有个愉快的一天,谢谢你。

3 个答案:

答案 0 :(得分:2)

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

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

或者您可以在类中的构造函数中添加中间件,如下所示:

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

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

答案 1 :(得分:0)

尝试使用'中间件' => '身份验证:网络'代替'中间件' => ' AUTH'

答案 2 :(得分:0)

嘿,我不清楚你的问题,但这对你有帮助, 当你去项目路径localhost/project/时,它将重定向到该URL中的localhost/project/home URL你可以分配任何功能

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