如何仅在自上次请求以来经过一定时间后才向 PrivateRoute 组件中的服务器发送请求?[关闭]

How to send a request to the server in PrivateRoute component only if certain amount of time passed since the last request? [closed]

提问人:Jul 提问时间:11/17/2023 更新时间:11/17/2023 访问量:16

问:


编辑问题以包括所需的行为、特定问题或错误以及重现问题所需的最短代码。这将帮助其他人回答这个问题。

3天前关闭。

我有一个 PrivateRoute 组件,它通过检查全局状态 isVerified 来检查用户是否已验证(我使用 Redux 工具包)。身份验证是基于会话 Cookie 的。我担心的是,当会话到期时,用户仍然能够看到他们的帐户。因此,为了防止这种情况,我想在用户重新加载 PrivateRoute 组件中的页面时向服务器发送请求,但前提是自上次请求 /isVerified 端点以来经过了一定的时间(假设 10 分钟)。我该怎么做,这种方法是否有意义,或者当用户尝试对其帐户执行某些操作并将全局状态 isVerified 设置为 false 时,可以捕获来自服务器的未经授权的响应?

我当时想的是设置一些带有日期的 lastRequested 状态,然后将其存储在本地存储中,或者使其成为我将保留在本地存储中的 redux 状态。我不确定这有多安全,以及这是否有意义。

reactjs 身份验证 axios react-redux 会话-cookies

评论

0赞 Drew Reese 11/17/2023
将“requestLastTimestamp”字段存储在某处并实例化间隔回调对我来说很有意义。另一种方法是在应用挂载/加载时读取会话过期日期时间,并使用 setTimeout 处理会话期间的过期时间,例如.log 用户注销并重置应用视图。如果您需要比这更多的帮助,我相信您需要编辑您的帖子以包含更多详细信息和相关代码的完整最小可重现示例。按原样,这篇文章有点过于宽泛和开放,有点主观,可以使用更多的重点。

答: 暂无答案