如何在该页面上没有 API 调用时检查 API 会话是否有效

How to check if API session is valid when no API calls on that page

问题

我正在使用 express 和 passport 创建后端 API。

在前端,如果会话无效但某些页面不进行任何 API 调用,我想将用户发送到登录屏幕。

我该怎么做?

我通常做的事情

通常我有一个 API 调用,如 /userinfo,当应用程序加载时,我会在所有页面上调用它,主要是为了检查会话是否有效。然后我设置了一个标志以避免再次检查会话。

我不喜欢只为了检查会话而进行 API 调用。

想法

我想检查 cookie connect.sid 是否存在并确保它已在 /logout 上删除。

这在开发中管理起来很烦人,因为前端网络服务器(后端和前端在不同端口上)可能无法访问 cookie。

我建议的最佳方法是在最顶层的主要组件中进行 api 调用,以检查会话是否有效(同时您可以向用户显示加载程序)。如果 api 调用成功,则将会话信息存储在您的状态中。因此,当所有其他组件加载时,通过检查会话信息来检查用户是否已登录。如果没有重定向到登录页面。