Node.js开发Mongodb用户体系注册成功,Postman测试登录接口返回错误求助
问题排查步骤
首先需要你先确认登录接口返回的是哪类预设错误,再对应排查:
若返回404 User doesn't exist
- 检查Postman登录请求Body里的
email字段拼写、大小写、前后空格,和注册时填写的邮箱完全一致 - 核对数据库用户表中是否确实存在该邮箱对应的用户数据,同时确认
UserModal定义的邮箱字段名和代码里findOne({ email })的字段名完全匹配
若返回400 Invalid credentials
- 检查Postman登录请求里的
password字段和注册时填写的密码完全一致,注意大小写、特殊字符、前后空格 - 确认数据库
password字段的存储长度不小于60位:bcrypt生成的哈希值固定为60位,字段长度不足会导致哈希值被截断,比对必然失败 - 确认注册和登录逻辑使用的bcrypt版本一致,避免不同版本哈希规则不兼容导致比对失败
若返回500 Something went wrong
- 在登录接口的catch块添加日志
console.log(err),查看控制台报错信息,大概率是jwt签名用的secret变量未定义、数据库连接异常这类基础配置问题
通用校验项
- 确认登录接口的请求方法为POST,请求头
Content-Type设置为application/json,Body选择raw+JSON格式 - 确认注册、登录两个模块引用的jwt
secret是同一个值,没有拼写错误
内容的提问来源于stack exchange,提问作者Ahmad Salihu
相关产品推荐
相关产品推荐

