You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB环境下登录用户识别与个性化收藏列表实现咨询

技术实现方向建议

一、用户身份识别核心方案

  • 会话(Session)+ Cookie 模式:用户登录验证通过后,后端生成唯一会话ID并绑定用户ID,将会话ID存入服务器存储(内存/Redis),同时通过Cookie把会话ID返回前端。后续前端发起添加/编辑收藏的请求时,浏览器会自动携带Cookie,后端通过会话ID就能匹配到对应的用户ID,完成身份识别。大部分后端框架都自带该机制,比如Spring的HttpSession、Django的session模块、Express的express-session中间件。
  • JWT 令牌模式:登录成功后,后端生成包含用户ID的JWT令牌(带签名防篡改)返回前端,前端将令牌存在localStorage或sessionStorage里。每次请求收藏相关接口时,在请求头的Authorization字段带上Bearer <token>,后端解析令牌即可获取用户ID。常用工具包有Java的JJWT、Python的PyJWT、Node.js的jsonwebtoken。

二、专属收藏列表的数据库设计

核心是通过用户ID关联收藏数据,推荐两张基础表:

  • 用户表(users):存储用户ID、账号、密码哈希(必须哈希存储,禁止明文)等基础信息
  • 收藏表(food_favorites):字段包含收藏ID、用户ID(外键关联users表)、食物名称、添加时间等
    这样通过用户ID就能精准查询到该用户的所有收藏记录,确保每个用户的收藏列表独立唯一。

三、添加/编辑功能实现要点

  • 添加收藏:POST接口接收食物名称等参数,后端先校验用户身份,拿到用户ID后,将用户ID和食物信息插入收藏表
  • 编辑收藏:PUT接口接收收藏ID和修改后的食物信息,后端先查询该收藏记录的用户ID,确认与当前登录用户ID一致后再执行更新(防止越权修改他人收藏)
  • 获取收藏列表:GET接口直接根据当前用户ID查询收藏表,返回该用户的专属列表

四、关键安全细节

  • 密码必须用bcrypt、Argon2这类强哈希算法存储,不能明文保存
  • 所有涉及用户收藏的接口,第一步必须校验用户身份的有效性(会话是否有效/JWT是否合法)
  • 前端对用户输入的食物名称要做转义处理,避免XSS攻击

内容的提问来源于stack exchange,提问作者Jack Z

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 18:45:48