Laravel Passport未使用JWT cookie进行身份验证(自用API)

Laravel Passport未使用JWT cookie进行身份验证(自用API),laravel,laravel-5,laravel-passport,laravel-5.7,Laravel,Laravel 5,Laravel Passport,Laravel 5.7,我已经浏览了整个文档页面,据我所知,我已经完全按照文档中的说明进行了设置。但是,当我尝试向/api/users发出GET请求时,它总是返回401未经授权的 如果我检查请求,我会看到laravel\u令牌确实与请求以及CSRF一起传递 在这一点上,我真的不知道为什么它总是无法验证,但这是相当令人沮丧的,我相信这是我忽略了一些次要的东西 我用的是Laravel 5.7.5 完成配置步骤: 运行php artisan passport:install 为用户模型添加了特征 将Passport::ro

我已经浏览了整个文档页面,据我所知,我已经完全按照文档中的说明进行了设置。但是,当我尝试向
/api/users
发出GET请求时,它总是返回
401未经授权的

如果我检查请求,我会看到
laravel\u令牌
确实与请求以及CSRF一起传递

在这一点上,我真的不知道为什么它总是无法验证,但这是相当令人沮丧的,我相信这是我忽略了一些次要的东西

我用的是Laravel 5.7.5

完成配置步骤:

  • 运行php artisan passport:install
  • 为用户模型添加了特征
  • Passport::routes()
    添加到
    AuthServiceProvider::boot()
  • config/auth.php中将API驱动程序更改为passport
  • createFreshApitonk::class
    添加到web中间件

  • 经过大量挖掘,我终于找到了我的问题所在

    在5.6及更高版本的Laravel中,Cookie不再序列化/非序列化。但是,Passport仍然希望cookie被序列化。Laravel和Passport的文档都没有指出这一点,希望它们能更同步,所以这不是一个问题


    要解决此问题,只需添加
    Passport::withoutCookieSerialization()
    app\Providers\AuthServiceProvider::boot()

    如何检查请求?你用浏览器试过了吗?如果是这样的话,你就错了。您应该使用一些应用程序对端点进行json调用。有点像邮递员。能够在标题中设置应用程序/类型的东西。如果您通过正确的头调用endpoint,请检查您的文件密钥文件权限。@train_fox我正在检查使用Axios发出的请求,Passport文档就是这样做的。这绝对不是错误的做法。我不知道你想说的
    文件密钥文件权限是什么意思
    。当你运行
    php artisan passport安装时
    laravel将生成两个文件,私钥和公钥。检查存储目录以找到它们并检查它们的权限,所需的权限是644。@train_fox啊,是的,这些文件具有正确的权限。是否尝试访问api.php路由文件中定义的默认路由?