路线中缺少Laravel Passport路线:列表 - oauth / token

时间:2018-01-23 14:39:18

标签: php laravel oauth laravel-5.5 laravel-passport

我已按照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/tokenLaravel Passport上搜索了对404错误的引用,但在解决方案上已经出现问题。

非常感谢任何建议。

2 个答案:

答案 0 :(得分:1)

bingo bango我发现了问题......

因此,在上面的评论中提到之后,我的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