从redux令牌身份验证重新加载时访问新的访问令牌



我正在构建一个web应用程序,该应用程序由React前端和后端的几个Rails API组成。一个Rails API用于用户身份验证,另一个用于存储,所有这些都通过可靠的API端点进行协调。对于客户端身份验证,我是用户redux-token-auth,与用户身份验证API上的devise_token_auth gem配对。在存储API上,它通过让用户身份验证API在登录时向存储API发送客户端标识符和访问权限来确认用户已通过身份验证。在客户端之后,向存储器验证访问令牌和客户端标识符以进行授权。一切都有效,但我遇到的问题是,在重新加载客户端应用程序时,将生成一个新的令牌,并且必须发送该新令牌并将其存储在存储API中,以便授权工作。

我已经研究了redux令牌auth的代码,并且有一个verifyCredentials函数在客户端重新加载时被调用。这个函数似乎是一个不返回promise的promise。进一步的verifyCredentials调用verifyToken,后者将访问令牌存储到本地存储中。但是,这也没有返回我可以得到的承诺。我已经尝试在调用verifyCredentials后立即更新access-token,并通过客户端的axios将新令牌发送到存储API,但它总是发送最后一个令牌,而不是新更新的令牌。在应用程序生命周期的不同时间,我尝试过以各种方式进行此操作,但都失败了。

是否有任何可行的解决方案来解决这个问题,或者无论如何,将verifyToken/VerifyCrendials变成一个返回我可以访问的响应数据的承诺?

迟到,但尝试:

  • axios拦截器:https://github.com/axios/axios/issues/1383
  • 加上从localStorage(localStorage.getItem('...')

最新更新