Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么验证中间件不适用于多身份验证?_Php_Laravel_Authentication_Middleware - Fatal编程技术网

Php 为什么验证中间件不适用于多身份验证?

Php 为什么验证中间件不适用于多身份验证?,php,laravel,authentication,middleware,Php,Laravel,Authentication,Middleware,我希望有3个用于身份验证的防护: 顾客 卖主 管理员 他们必须单独登录,表格和模型也是分开的。 好的,但是认证中间件中的以下代码只对管理员有效 namespace App\Http\Middleware; use Illuminate\Support\Facades\Route; use Illuminate\Auth\Middleware\Authenticate as Middleware; class Authenticate extends Middleware { prote

我希望有3个用于身份验证的防护:

  • 顾客
  • 卖主
  • 管理员
  • 他们必须单独登录,表格和模型也是分开的。 好的,但是认证中间件中的以下代码只对管理员有效

    namespace App\Http\Middleware;
    use Illuminate\Support\Facades\Route;
    use Illuminate\Auth\Middleware\Authenticate as Middleware;
    
    class Authenticate extends Middleware
    {
        protected function redirectTo($request)
        {
            if (! $request->expectsJson()) {
                if(Route::is('admin.*')){
                    return route('admin.auth.login');
                }
                if(Route::is('vendor.*')){
                    return route('vendor.auth.login');
                }
                return route('login');
            }
        }
    }
    

    当您执行dd(Request::route()->getName())时,供应商路线现在被重定向到站点索引,而不是登录

    ,供应商与管理员的输出是什么?@AndrewGosselin代表管理员“null”&供应商“vendor.index”@AndrewGosselin即使我清除了条件,如果您更改为Request::is('admin.*)或Route::current()->getName(),则管理员仍能正常工作=='admin.*'有效吗?@AlexandreBarbosa该条件工作正常,在我使用dd()时为真,只是重定向有问题