目标 [League\OAuth2\Server\Repositories\ClientRepositoryInterface] 在构建 [League\OAuth2\Server\AuthorizationServer] 时不可实例化

Mar*_*ark 4 php facebook oauth facebook-graph-api laravel

我最近成立了一个新的Laravel 5.5项目上Ubuntu 16.04NGINX服务器。我遵循了所有正确的步骤,并不止一次地仔细检查了所有内容。我已经安装Laravel/Passport并仔细检查了那些设置说明。

我正在构建一个API大多数端点都需要登录的方法,这是通过password_grantwith完成的,laravel/passport但也可以使用Facebook身份验证令牌 - 而不是编写我自己的 Facebook 身份验证令牌验证,我选择使用幼虫插件。composer require danjdewhurst/laravel-passport-facebook-login但是,这个插件对我来说似乎并不容易安装。

我在发出的任何composer安装或更新命令上都收到错误消息:

目标 [League\OAuth2\Server\Repositories\ClientRepositoryInterface] 在构建 [League\OAuth2\Server\AuthorizationServer] 时不可实例化。

我已经使用了该config/app.php文件以及uses与插件一起安装的所有文件和提供程序。我已经浏览了这里的每一篇文章,试图解决这个问题。

如果有人对此问题有任何见解或解决方案,我将不胜感激。任何帮助都会有所帮助。

谢谢你。

Jon*_*201 5

我发现这是 Laravel 自动发现包的顺序的问题。显然 Facebook Grant 包需要在之后加载,laravel/passport但这并没有发生。

我的解决方案是将以下内容添加到我的composer.json

"extra": {
    "laravel": {
        "dont-discover": [
            "laravel/passport",
            "danjdewhurst/laravel-passport-facebook-login"
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

然后将以下内容添加到config/app.php提供程序数组中的my中:

\Laravel\Passport\PassportServiceProvider::class,
\Danjdewhurst\PassportFacebookLogin\FacebookLoginGrantProvider::class,
Run Code Online (Sandbox Code Playgroud)