【问题标题】:Laravel Passport routes missing in route:list - 404 error on oauth/token路由中缺少 Laravel Passport 路由:列表 - oauth/token 上的 404 错误
【发布时间】:2018-07-02 10:12:54
【问题描述】:

我已按照 Laravel 5.5 文档在我们的应用程序上要求、安装和配置 Laravel Passport。我们仅使用密码授予功能,因为我们不打算将其用作社交登录工具。但是,按照所有说明操作后,尝试使用 Postman 将表单数据 POST 到应用程序时出现 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 错误的引用,但没有找到解决方案。

非常感谢任何建议。

【问题讨论】:

  • 尝试使用php artisan route:clear清除路由缓存
  • 我也这样做了。还有composer dump-autophp artisan clear-compiled。没有运气。
  • 我注意到很多与此相关的问题都提到了barryvdh/laravel-cors。我的作曲家文件中没有它,我什至不知道它是什么。我需要它来运行护照吗?如果是这样,为什么它不在 composer require 命令期间安装?
  • 好吧,我想我已经取得了一点进展,但我还没有走出困境。我在我的config/app.php 文件中发现提供程序数组定义了'Illuminate\Auth\AuthServiceProvider',而不是我的'App\Providers\AuthServiceProvider'。更改为之后,我不再有 404,但是当我尝试运行 route:list 时,我得到了 Class auth does not exist。还不确定这意味着什么。我尝试将 use Auth 添加到 AuthServiceProvider 但没有帮助。

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


【解决方案1】:

我也遇到了同样的问题,并通过清除缓存php artisan o:c修复了

【讨论】:

    【解决方案2】:

    检查您是否拥有正确的 Laravel Passport 版本:

    composer require laravel/passport:~4.0
    

    对于 Laravel 5.5 和 5.6

    【讨论】:

      【解决方案3】:

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

      因此,正如我在上面的评论中提到的那样,在挖掘之后,我的 App\Providers 文件夹中的 AuthServiceProvider 没有被引用。我已经注释掉了 Illuminate 并添加了我的 App\Providers 一个,认为它只会扩展 Illuminate 一个。这导致了 Auth 类错误。我重新启用了 Illuminate 并让我的 App\Providers\AuthServiceProvider 启用但低于 Illuminate 并且一切都解决了。没有更多的 404...希望这对其他人有帮助。

      【讨论】:

        猜你喜欢
        • 2018-01-15
        • 2018-01-18
        • 2013-12-26
        • 2014-12-21
        • 2017-10-20
        • 1970-01-01
        • 2015-06-29
        • 1970-01-01
        • 2016-05-17
        相关资源
        最近更新 更多