【发布时间】: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/token 和 Laravel Passport 上搜索了对 404 错误的引用,但没有找到解决方案。
非常感谢任何建议。
【问题讨论】:
-
尝试使用
php artisan route:clear清除路由缓存 -
我也这样做了。还有
composer dump-auto和php 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