Laravel API突然退回护照401未认证错误

Laravel API Suddenly Returning an Passport 401 Unauthenticated Error

我有一个设置,其中 2 Laravel 5.3 个设置作为 API 和客户端,用于分离的电子商务解决方案。

工作了大约一年后,突然开始return 401 Unauthenticated error.

我的实现是完全根据 Laravel 5.3 文档完成的。

错误是 客户端错误:"GET" http://myapi.com/api/get/product/ 导致“401 未经授权”响应:{"error":"Unauthenticated."}

观察结果

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

根本原因

  • 根据 Laravel 文档 (API Authentication (Passport)) Laravel 5.3 版令牌不需要刷新和更新。

  • 与文档相矛盾 Laravel 5.3 令牌在 1 年后过期并且需要 refreshed/renewed.

  • 讽刺的是,“Laravel Refresh Token”也在同一天到期,无法在到期后自动更新 Token。

解决方案

  • 在生成 Laravel 5.3 令牌之前,将刷新令牌的生命周期延长到比访问令牌更大的值。
  • 在 AuthServiceProvider.php boot 方法和 $this->registerPolicies();

    下面使用下面的代码

    $this->registerPolicies();

    护照::路线(); Passport::refreshTokensExpireIn(Carbon::now()->addDays(30));

  • 忽略Laravel 5.3文档,使用刷新令牌实现令牌更新方法。