node.js - 当该页面上没有 API 调用时如何检查 API 会话是否有效
问题描述
问题
我正在使用 express 和 passport 创建一个后端 API。
在前端,如果会话无效但某些页面没有进行任何 API 调用,我想将用户发送到登录屏幕。
我怎样才能做到这一点?
我通常做什么
通常我有一个 API 调用,就像/userinfo
我在应用程序加载时在所有页面上调用的那样,主要是为了检查会话是否有效。然后我设置了一个标志以避免再次检查会话。
我不喜欢仅仅为了检查会话而进行 API 调用。
想法
我想检查 cookie 的存在connect.sid
并确保它在/logout
.
这在开发中管理起来很烦人,因为前端 Web 服务器(后端和前端在不同端口上)可能无法访问 cookie。
解决方案
我建议的最佳方法是在您最重要的主要组件中进行 api 调用,以检查会话是否有效(同时您可以向用户显示加载程序)。如果 api 调用成功,则将会话信息存储在您的状态中。因此,当所有其他组件加载时,通过检查会话信息来检查用户是否登录。如果没有重定向到登录页面。
推荐阅读
- javascript - Android Javascript 接口无法接收回调函数
- javascript - 使用包装器 javascript 分组
- machine-learning - 在训练数据上使用 SMOTE
- python - 尝试通过python脚本打开png文件时,Applescript给出错误权限被拒绝
- javascript - 如果对象的类型只是“对象”,如何在 DevTools 内存快照中找到特定对象?
- c - 在同一结构中具有指向自身的指针的结构
- javascript - 数据表复选框在匹配的 id 上选择多个
- android - 来自智能手机的客户端通过 HTTP Post 将他/她的用户名和密码发送到服务器,没有任何加密,可以吗?
- r - 使用 if / else if 需要在 R 中填充昵称
- swift - MKMapView 在 Swift 中缩小地图时没有聚类注释