Laravel Passport不通过JWT cookie(自耗API)进行身份验证

时间:2018-12-31 23:04:55

标签: laravel laravel-5 laravel-passport laravel-5.7

我已经阅读了整个文档页面,据我所知,我已经按照文档说明完全设置了所有内容。但是,当我尝试向/api/users发出GET请求时,它总是返回401 Unauthorized

如果我检查了请求,就会发现laravel_token以及CSRF确实与请求一起传递了。

在这一点上,我不太确定为什么它总是无法通过身份验证,但是这很令人沮丧,并且我确定这是一个小小的问题,我以某种方式忽略了它。

我正在使用Laravel 5.7.5。

已完成配置步骤:

  • php artisan passport:install
  • 为用户模型添加了特征
  • Passport::routes()添加到了AuthServiceProvider::boot()
  • 已将API驱动程序更改为config/auth.php中的护照
  • 已将CreateFreshApiToken::class添加到Web中间件

1 个答案:

答案 0 :(得分:-1)

经过大量的挖掘,我终于弄清楚了我的问题所在。

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

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