从redux-token-auth重新加载后访问新的访问令牌

时间:2018-11-03 09:29:53

标签: ruby-on-rails reactjs authentication redux devise-token-auth

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

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

是否有解决此问题的可行方法,还是将verifyToken / VerifyCrendials转换为可返回我可以访问的响应数据的承诺?

1 个答案:

答案 0 :(得分:0)

晚了,但是尝试: