Reactjs Oauth2。异步刷新令牌调用

Reactjs Oauth2。异步刷新令牌调用,reactjs,asynchronous,oauth-2.0,Reactjs,Asynchronous,Oauth 2.0,我们有一个客户端,它与OAuth2保护的服务器通信 在实现令牌流时,我们遇到了一个问题。当页面加载时,很少有组件调用不同的安全端点。 当访问令牌过期时,所有请求都会出错并尝试刷新它。所以我们很少有异步请求 有没有办法处理这种情况 我们的客户机是在React JS上编写的。有许多解决方案 一种解决方案是创建类似令牌服务的东西 在启动任何http调用之前,请使用此服务并检查您是否拥有有效的令牌。这很容易,因为当您创建令牌时,您会得到关于令牌有效期的信息。你把它存储在某个地方,在你打电话之前,你要检查

我们有一个客户端,它与OAuth2保护的服务器通信

在实现令牌流时,我们遇到了一个问题。当页面加载时,很少有组件调用不同的安全端点。 当访问令牌过期时,所有请求都会出错并尝试刷新它。所以我们很少有异步请求

有没有办法处理这种情况


我们的客户机是在React JS上编写的。

有许多解决方案

一种解决方案是创建类似令牌服务的东西

在启动任何http调用之前,请使用此服务并检查您是否拥有有效的令牌。这很容易,因为当您创建令牌时,您会得到关于令牌有效期的信息。你把它存储在某个地方,在你打电话之前,你要检查你是否还在有效期窗口中。如果是,则启动http调用;如果不是,则请求另一个调用,并用新调用更新存储的调用。完成此操作后,使用有效令牌触发http调用

如果您不想管理这种复杂性,那么您可以简单地为每个请求请求一个新的令牌,您就完成了。您使用每个令牌进行一次呼叫,实际上就是这样


如果您已经实现了刷新令牌功能,您也可以使用该功能,因此如果令牌过期,您只需刷新它并继续

您刚才描述的获取访问令牌的非并发方式。问题是当访问令牌过期时对同一资源的并发访问。我们已经实现了某种队列来同步这种情况下发送的请求。不过还是要谢谢你的回答!