我们有一个客户端与OAuth2保护的服务器通信。
在实施令牌流程时,我们遇到了一个问题。页面加载时,很少有组件可以调用不同的安全端点。 存在访问令牌过期的情况,因此所有请求都会出错并尝试刷新它。所以我们几乎没有异步请求。
有没有办法处理这种情况?
我们的客户端是用React JS编写的。
答案 0 :(得分:0)
有很多解决方案。
一种解决方案是创建类似TokenService的东西。
在您启动任何http呼叫之前,您将使用此服务并检查您是否拥有有效的令牌。这很容易,因为当您创建令牌时,您将获得有关令牌有效期多长的信息。您存储在某个地方,在您拨打电话之前,检查您是否仍在有效期窗口中。如果你是那么你发起http呼叫,如果你不是,那么你请求另一个并用新的更新存储的呼叫。完成此操作后,您将使用有效令牌激活您的http调用。
如果您不想管理这种复杂性,那么您只需为每个请求申请一个新令牌即可。您可以将每个令牌用于一次通话,而且确实是这样。
如果你已经实现了刷新令牌功能,你也可以使用刷新令牌功能,所以如果你的令牌过期,你只需刷新它并继续前进