在react-native中的每个fetch()之前检查保存到redux的auth令牌的到期日期

时间:2018-04-09 13:08:12

标签: react-native jwt fetch-api

在我的本机应用中,我jwtlocalStorage保存到redux-persist。我需要在每次获取API请求之前检查令牌的过期日期。但是我不希望在每个页面中实现这个日期比较过程,因为有几十个页面我向API发出请求。也许我可以编写自定义方法来覆盖fetch并检查每次获取内部或之前的过期日期以发送检查令牌是否过期的操作?我被困在这里你知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

这是您如何解决问题的概述。

一步一步

  1. / login
  2. 成功登录
  3. 服务器返回{token,refreshToken}
  4. 现在发出任何请求(受保护,即只需登录用户需要显示或访问服务器上的特定资源)

    1. 使用授权标头
    2. 中的每个受保护请求发送令牌
    3. 服务器验证令牌
    4. 如果过期令牌服务器返回过期令牌错误
    5. 现在客户端收到过期的令牌错误
    6. 下一个客户端调度操作以获取新令牌
    7. 新操作应该向服务器发送api调用以获取新令牌传递refreshToken
    8. 在验证refreshToken服务器后返回新的accessToken和refreshToken,如果传递的refreshToken无效则返回错误,客户端应该logOut用户
    9. 如果收到新的accessToken,则使用新的accessToken和refreshToken
    10. 更新应用程序状态

      这只是一个概述,但您可以添加更多安全措施,例如只需通过refreshToken请求令牌几次,然后用户必须再次登录。