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文档,使用刷新令牌实现令牌更新方法。
我有一个设置,其中 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文档,使用刷新令牌实现令牌更新方法。