Laravel 自定义了guard用户组,认证失败跳转的地址如何根据用户组改变?

我们知道默认的auth会跳转到/login这个url,我在auth.php种增加了admin的guard,

 'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'api' => [
            'driver' => 'token',
            'provider' => 'users',
        ],

        'admin' => [
            'driver' => 'session',
            'provider' => 'admins',
        ]
    ],
     'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\Models\User::class,
        ],
        'admins' => [
            'driver' => 'eloquent',
            'model'  => App\Models\Admin::class,
        ]

        // 'users' => [
        //     'driver' => 'database',
        //     'table' => 'users',
        // ],
    ],

路由中添加了

Route::group(['middleware'=>['admin'],'prefix'=>'admin','namespace'=>'Admin'],function(){
    Route::get('login','AuthController@loginGet');
    Route::post('login','AuthController@loginPost');
    Route::get('logout','AuthController@logout');
    Route::get('/','IndexController@index');
});

但是如何在未登录的情况下跳转到admin/login呢?

阅读 4.7k
1 个回答

使用自定义的中间件验证,

 public function handle($request, Closure $next)
    {

        if (!Auth::guard("admins")->check()){
            return redirect('/login');
        }
        return $next($request);
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题