构建[League \ OAuth2 \ Server \ AuthorizationServer]时,目标[League \ OAuth2 \ Server \ Repositories \ ClientRepositoryInterface]无法实例化

时间:2018-02-04 12:44:04

标签: php facebook laravel facebook-graph-api oauth

我最近在Laravel 5.5上使用Ubuntu 16.04服务器设置了一个新的NGINX项目。我已经按照所有正确的步骤进行了多次检查。我已安装Laravel/Passport并同时检查了这些设置说明。

我要构建一个需要登录大多数端点的API,这可以通过password_grant laravel/passport来完成,但也可以使用Facebook身份验证令牌 - 我没有编写自己的Facebook Auth Token验证,而是选择使用larval插件。 composer require danjdewhurst/laravel-passport-facebook-login但是,这个插件似乎并不适合我安装。

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

  

构建[League \ OAuth2 \ Server \ AuthorizationServer]时,目标[League \ OAuth2 \ Server \ Repositories \ ClientRepositoryInterface]无法实例化。

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

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

谢谢。

3 个答案:

答案 0 :(得分:3)

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

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

"extra": {
    "laravel": {
        "dont-discover": [
            "laravel/passport",
            "danjdewhurst/laravel-passport-facebook-login"
        ]
    }
}

然后将以下内容发送到providers数组中的config/app.php

\Laravel\Passport\PassportServiceProvider::class,
\Danjdewhurst\PassportFacebookLogin\FacebookLoginGrantProvider::class,

答案 1 :(得分:1)

Laravel\PassportServiceProvider::class添加到config/app.php提供程序之后。我刚刚从bootstrap/cache/中删除了 .php ,它可以正常工作。

答案 2 :(得分:0)

我正在尝试编写更新并遇到同样的问题。

然后我注意到https://github.com/danjdewhurst/Laravel-Passport-Facebook-Login陈述的依赖关系

"laravel/passport": "^4.0",

我在更新护照后解决了我的问题