我最近在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
来使用随插件安装的所有文件和提供程序。我已经阅读了这里的每一篇文章,试图解决这个问题。
如果有人对此问题有任何见解或解决方法,我会很感激。任何帮助都会有所帮助。
谢谢。
答案 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",
我在更新护照后解决了我的问题