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

身份验证App获取登录用户个人资料始终显示同一用户错误排查

问题修复方案

核心问题原因

你遇到的所有用户登录都展示同一份资料的问题,根源在服务端/profile接口的查询逻辑错误,另外代码中还存在模型名混用的潜在BUG,按以下步骤修复即可:


修复步骤

1. 修复获取用户资料接口的查询逻辑

你当前/profile接口的查询条件完全错误:

// 错误代码
let user = await User.findOne({ user: req.user.id }).select('-password');

jwt中存储的req.user.id是用户表的主键_id的值,你写的{user: req.user.id}是查询表中user字段等于该值的数据,你的用户表根本没有user字段,会导致查询直接返回表中第一条数据,也就是你看到的固定同一个用户的信息。
修改为:

// 正确代码
let user = await User.findById(req.user.id).select('-password');

2. 统一模型名,修复混用问题

你代码开头仅引入了User模型:

const User = require('./models/User');

但在注册接口、编辑接口中混用了不存在的AuthUser变量,会导致逻辑异常,全局搜索所有AuthUser替换为User即可:

  • 注册接口的await AuthUser.findOne({ email })、new AuthUser({...})全部替换为User
  • 编辑接口的await AuthUser.findById(req.params.id)替换为User

3. 修复编辑接口的返回逻辑(可选优化)

你编辑接口更新后返回的是手动拼接的data对象,建议直接返回更新后的user对象即可,保证返回字段和其他接口一致:

// 原代码
return res.json(data);
// 修改为
return res.json(user);

内容的提问来源于stack exchange,提问作者Ope Afolabi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 10:36:03