首页 > 解决方案 > 当该页面上没有 API 调用时如何检查 API 会话是否有效

问题描述

问题

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

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

我怎样才能做到这一点?

我通常做什么

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

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

想法

我想检查 cookie 的存在connect.sid并确保它在/logout.

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

标签: node.jsapiexpresssessionpassport.js

解决方案


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


推荐阅读