Rest 太频繁地更新访问令牌是一种不好的做法吗?

Rest 太频繁地更新访问令牌是一种不好的做法吗?,rest,jwt,token,Rest,Jwt,Token,我正在使用一个RESTful服务,它给我一个一小时有效的访问令牌。每次收到服务器的响应时,我都会检查令牌是否过期,如果过期,我会续订令牌并再次发送请求 但这让我思考:是什么让我每次提出请求时都无法获得新的代币?如果我只是在每次请求之前发送一个新令牌的请求,而不是在令牌实际过期时处理异常,那么我会保存几行代码。有什么技术上的原因可以避免这种情况吗?如果您在每次通话中都提出请求,可能会导致延迟问题。I小时窗口真的很大,对于每一个请求,如果你打一个电话,你最终会打太多电话,只是为了得到一个令牌,而你所

我正在使用一个RESTful服务,它给我一个一小时有效的访问令牌。每次收到服务器的响应时,我都会检查令牌是否过期,如果过期,我会续订令牌并再次发送请求


但这让我思考:是什么让我每次提出请求时都无法获得新的代币?如果我只是在每次请求之前发送一个新令牌的请求,而不是在令牌实际过期时处理异常,那么我会保存几行代码。有什么技术上的原因可以避免这种情况吗?

如果您在每次通话中都提出请求,可能会导致延迟问题。I小时窗口真的很大,对于每一个请求,如果你打一个电话,你最终会打太多电话,只是为了得到一个令牌,而你所拥有的一切都很好。 话虽如此,通常访问令牌在5到10分钟之间处于活动状态(如果其有效期更长,则没有什么问题,但这并不是它们的使用方式)。您不应该等待从服务器获取401来刷新令牌。甚至在调用服务器之前,您都可以检查AT是否将在(比如)接下来的1分钟内到期,如果到期,则刷新令牌

在代码中添加几行代码是一个很好的折衷方案,如果您可以在请求上节省几毫秒的时间。您节省的时间会增加,并降低延迟

它为您节省的是获取访问令牌所需的时间

是什么阻止我每次提出请求时获得新令牌

没有什么可以阻止您在每次请求时获得新令牌。您将节省几行代码,但相应的是,它将增加针对授权服务器的请求数

您持有的代币有效期应为1小时。您不必询问它是否仍然对每个请求有效。只要使用,当资源服务器返回401HTTP响应时,您就可以续订它