我已按照Laravel 5.5文档在我们的应用程序上要求,安装和配置Laravel Passport。我们只使用密码授予功能,因为我们不打算将其用作社交登录工具。但是,在遵循所有说明后,尝试使用Postman将表单数据发布到应用程序时出现404错误。
我已经运行了php artisan route:list
,根本没有提到oauth
。我会分享输出,但由于我们有大量的应用程序,所以它很长。
我确保Passport::routes()
位于AuthServiceProvider
,如下所示:
<?php
namespace App\Providers;
use Laravel\Passport\Passport;
use Illuminate\Support\Facades\Gate;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
class AuthServiceProvider extends ServiceProvider
{
/**
* The policy mappings for the application.
*
* @var array
*/
protected $policies = [
'App\Model' => 'App\Policies\ModelPolicy',
];
/**
* Register any authentication / authorization services.
*
* @return void
*/
public function boot()
{
$this->registerPolicies();
Passport::routes();
//
}
}
5.5上的文档没有说明像以前版本的Laravel那样在config/app.php
文件中添加一行。在得到404错误之后,我决定尝试添加该行,看它是否有帮助。它没有。
我确实运行php artisan passport:install
然后php artisan migrate
,这导致创建了2个客户端:(ID = 1:个人访问客户端)和ID 2:密码授予客户端)和各种oauth在我们的数据库中创建的表。
由此产生的404错误实际上来自网站,而不是一些通用消息,因为它的主题已经包含在内,因此我知道它正在触及应用程序。
我已经在oauth/token
和Laravel Passport
上搜索了对404错误的引用,但在解决方案上已经出现问题。
非常感谢任何建议。
答案 0 :(得分:1)
因此,在上面的评论中提到之后,我的App \ Providers文件夹中的AuthServiceProvider未被引用。我已经注释掉了Illuminate,并添加了我的App \ Providers,认为它只是扩展了Illuminate。这导致了Auth类错误。我重新启用了Illuminate,并启用了我的App \ Providers \ AuthServiceProvider,但在Illuminate下面,这一切都完成了。没有更多404s ...希望这能帮助别人。
答案 1 :(得分:0)
检查Laravel是否有正确的Passport版本:
composer require laravel/passport:~4.0
适用于Laravel 5.5和5.6