Laravel API突然返回Passport 401未经身份验证的错误

问题描述 投票:0回答:1

我有一个设置,其中2个Laravel 5.3设置充当API和客户端,用于解耦电子商务解决方案。

工作了大约一年后,突然它开始返回401 Unauthenticated错误。

我的实现完全根据Laravel 5.3 doc完成。

错误是客户端错误:“GET”http://myapi.com/api/get/product/导致“401 Unauthorized”响应:{“error”:“Unauthenticated。”}

php laravel api laravel-5.3 laravel-passport
1个回答
0
投票

意见

  • 我们发现网站前端无法连接到后端以获取数据。
  • API返回并且身份验证错误。
  • 进一步向下钻取显示它是身份验证令牌的问题。
  • 然后我们检查了令牌并发现它们已过期。

根本原因

  • 根据Laravel文档(API Authentication (Passport)),Laravel Version 5.3令牌不需要刷新和更新。
  • 与文件相反,Laravel 5.3令牌在1年后到期,需要刷新/续订。
  • 具有讽刺意味的是,“Laravel Refresh Token”也会在同一天到期,无法在到期后自动续订令牌。

  • 在生成Laravel 5.3 Token之前,将Refresh Token生命周期扩展到比Access Token更大的值。
  • 在AuthServiceProvider.php启动方法中使用以下代码,并在$ this-> registerPolicies()下面; $这 - > registerPolicies(); 护照::路线();护照:: refreshTokensExpireIn(碳::现在() - > addDays(30));
  • 忽略Laravel 5.3文档,使用Refresh Token实现令牌更新方法。
© www.soinside.com 2019 - 2024. All rights reserved.