【问题标题】:Laravel Auth redirect not workingLaravel 身份验证重定向不起作用
【发布时间】:2016-11-04 09:18:03
【问题描述】:

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

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

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

祝你有美好的一天,谢谢。

【问题讨论】:

  • 您能进一步解释您面临的问题吗?我认为它不够清楚。
  • 你显然想在你的路线中do this

标签: php laravel authentication middleware


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      如上所述,你有没有尝试过这样的事情?

      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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-10-21
        • 2016-04-28
        • 2021-11-27
        • 2013-04-17
        • 2016-04-05
        • 2015-09-23
        相关资源
        最近更新 更多