【问题标题】:Laravel 7.5.2 (Passport Api) + Ajax Error : Undefined index: aud , \\vendor\\laravel\\passport\\src\\Guards\\TokenGuard.phpLaravel 7.5.2 (Passport Api) + Ajax 错误:未定义索引:aud,\\vendor\\laravel\\passport\\src\\Guards\\TokenGuard.php
【发布时间】:2020-08-21 04:48:12
【问题描述】:

我正在使用 Laravel 7.5.2 和 Vuejs。我正在使用护照进行 api 身份验证。 我已按照 laravel 网站上的护照安装说明进行操作。

  • 已运行 composer require laravel/passport、php artisan migrate 和 php artisan passport:install
  • 在用户模型中添加了 HasApiTokens
  • 已在 AuthServiceProvider 中添加 Passport::routes()
  • 在 App\Http\Kernel web middlewareGroups 中添加了 \Laravel\Passport\Http\Middleware\CreateFreshApiToken::class
  • 已将 config/auth.php 中的 Api 驱动程序更改为护照

正如我在开发者工具中看到的那样,名为“laravel_token”的 cookie 正在生成并通过 ajax 请求发送。

在我的控制器中,我将 api 中间件包含为

public function __construct(){
    $this->middleware('auth:api');
}

Api/Ajax 响应

{
"message": "Undefined index: aud",
"exception": "ErrorException",
"file": "E:\\laravel\\vendor\\laravel\\passport\\src\\Guards\\TokenGuard.php",
"line": 140,
"trace": [
    {
...
}
]

我也试过了:composer dump-autoload

我的设置

  • Laravel:7.5.2
  • 护照:9.0
  • PHP : 7.4.0
  • Vuejs:2.5.17

这个问题不仅仅与 vuejs 有关。它与来自简单 javascript 的 ajax 请求有关,也可能来自任何框架。

【问题讨论】:

    标签: javascript ajax laravel vue.js laravel-passport


    【解决方案1】:

    你跑php artisan passport:install了吗?

    需要在存储目录中安装密钥。

    【讨论】:

    • 是的,我已经运行了 php artisan migrate 和 php artisan passport:install
    【解决方案2】:

    laravel/passport 9.0 版本存在一些问题。升级到 9.0.1 版解决了这个问题。

    composer update laravel/passport:9.0.1
    

    可以在此处找到问题的详细信息: Issue Detail on Github

    感谢解决问题的人。

    【讨论】:

      猜你喜欢
      • 2018-08-23
      • 2021-03-17
      • 1970-01-01
      • 1970-01-01
      • 2018-10-17
      • 1970-01-01
      • 2018-11-08
      • 1970-01-01
      • 2020-08-21
      相关资源
      最近更新 更多