首页 > 解决方案 > Laravel (v5.7) Passport (v7.0) 在尝试打开 auth api 路由时将我重定向到登录屏幕

问题描述

我读过这个问题:Laravel Passport Route redirects to login page,它对我不起作用。我正在使用Accept: application/jsonand发送请求Authorization: Bearer [access-token],但我被重定向到我的应用程序的登录屏幕。这是我正在尝试的路线https://passportdemo.test/api/products,这是我的 api 路线文件

Route::post('register', 'API\RegisterController@register');

Route::middleware('auth:api')->group( function () {
    Route::resource('products', 'API\ProductController');
});

我能够注册一个新用户并毫无问题地登录一个用户,但是当我尝试使用产品路由时,我被重定向到登录屏幕。我还试图看看会dd($request->expectsJson());从什么返回namespace Illuminate\Foundation\Exceptions@unauthenticated,它正在返回false,这很奇怪吗?我认为它应该返回 true。我正在使用 nginx 服务器,所以 .htaccess 的技巧我认为它不适合我,我也尝试protected static $serialize = true;在类中添加Illuminate\Cookie\Middleware\EncryptCookies,但这对我也有用。有人可以帮助我吗?

标签: phplaravellaravel-passport

解决方案


一个菜鸟的错误。事实证明,使用 Postman 或 Insomnia 发送请求需要使用 Auth 选项卡而不是从数据/表单点击(我正在使用)完成。

  • 对于 Postman,只需转到 Authorization 并选择 Bearer token 并粘贴令牌并在 Params 选项卡中填写任何数据(如果需要)
  • 对于 Insomnia,只需单击 Bearer 令牌并粘贴您的令牌,然后在 Multipart 中(如果您有一些表单数据粘贴/写入)

瞧!

经过3天的研究是什么问题!


推荐阅读