我正在使用bshaffer/oauth2-server-php库来实现 oauth2 服务器。
目前,我使用访问令牌对每个请求进行身份验证,并在访问令牌过期时刷新令牌,因此如果刷新令牌未过期,则服务器返回新的访问令牌。如果刷新令牌过期,则返回以下错误: {"error":"invalid_grant","error_description":"Refresh token has expired"} ,然后在客户端用户自动注销。
我想用 Oauth2 实现标准的“PHP 会话超时”。因此,我的令牌将在上次请求后 XX 分钟后失效(如果同时没有请求),这意味着我将在每个请求上将令牌的有效期延长 XX 分钟。
我希望刷新令牌的过期时间与我上次的请求一致,因此将在 XX 分钟用户不活动后返回之前的错误。谁能告诉我实现这一点的最佳实践是什么?我想在每个请求的标头中发送刷新令牌并手动延长它在数据库中的过期时间,但不知道这是否足够安全。
这是由 Oauth2 处理的,还是不应该在使用 API 调用的系统上实现?
另外,我对如何在 oauth2 中处理这种情况感兴趣?
提前致谢。