Php Laravel 5-定制防护装置

Php Laravel 5-定制防护装置,php,laravel,laravel-5,Php,Laravel,Laravel 5,因此,我使用的是Laravel 5,对于更复杂的身份验证,我需要重载Laravel的Guard实现的方法trunt 然而,我很难找到我应该在哪里更换警卫 我是否需要更换illumb\Auth\AuthManager,然后更换illumb\Auth\Guard,并更改服务提供商(仅为一个过载)?这是可行的,但似乎很沉重 浏览illible\Auth\AuthManager时,我发现了以下方法: /** * Call a custom driver creator. * * @param

因此,我使用的是Laravel 5,对于更复杂的身份验证,我需要重载Laravel的Guard实现的方法
trunt

然而,我很难找到我应该在哪里更换警卫

  • 我是否需要更换
    illumb\Auth\AuthManager
    ,然后更换
    illumb\Auth\Guard
    ,并更改服务提供商(仅为一个过载)?这是可行的,但似乎很沉重
  • 浏览
    illible\Auth\AuthManager
    时,我发现了以下方法:

    /**
     * Call a custom driver creator.
     *
     * @param  string  $driver
     * @return \Illuminate\Auth\Guard
     */
    
    protected function callCustomCreator($driver)
    {
        $custom = parent::callCustomCreator($driver);
    
        if ($custom instanceof Guard) return $custom;
    
        return new Guard($custom, $this->app['session.store']);
    }
    
    你知道我在哪里可以用吗?它似乎完全符合我的需要


谢谢你的意见

如果您查看方法实现,它会说您可以返回
Guard
UserProvider
契约的实例。因此,在您的案例中,您可以使用以下代码示例:

Auth::extend('custom', function($app)
{
    return new MyCustomGuard($userProvider, $session, $request);
}

您可以从传递到闭包的$app变量中获取
$request
变量
$app['request']

您可以提供如何构建$userProvider$会话和$request的指示吗?