我用nuxtjs编写了一个注册功能。它在我的数据库中保存了一个新用户。但是,在之后生成令牌(登录用户)似乎存在问题。
寄存器操作由寄存器组件中的方法调用。它返回catch块中的错误响应。在服务器上生成令牌之后,它似乎就失败了。
商店中的操作
async register ({ commit }, { name, slug, email, password }) {
try {
const { data } = await this.$axios.post('/users', { name, slug, email, password })
commit('SET_USER', data)
} catch (err) {
commit('base/SET_ERROR', err.response, { root: true })
throw err
}
}nodejs服务器上的Post函数
router.post('/users', async (req, res) => {
try {
const body = _.pick(req.body, ['name', 'slug', 'email', 'password']);
const user = new User(body);
await user.save();
const token = await user.generateAuthToken(); // execution seems to fail on this line
console.log(token); // never gets called
req.session['token'] = 'Bearer ' + token;
req.session['user'] = user;
res.header('Authorization', 'Bearer ' + token).send(user);
} catch (err) {
res.status(400).json({ message: "Der Account konnte leider nicht erstellt werden" });
}
});mongo模型用户中的GenerateAuthToken函数
UserSchema.methods.generateAuthToken = function () {
var user = this;
var access = 'auth';
var token = jwt.sign({_id: user._id.toHexString(), access}, process.env.JWT_SECRET).toString();
user.tokens.push({access, token});
return user.save().then(() => {
return token;
});
};错误消息

我会非常感谢任何帮助!
发布于 2019-07-30 03:06:58
也许这不会有太大帮助,但我会尝试创建一个虚拟令牌,并试图使一切都与它一起工作。我的调试技术之一是隔离我的代码的每一个部分,并确保所有的东西都能一片片地工作,也许这种技术是缓慢的,但大多数情况下它是有效的。
如果一切正常,我将继续调试generateAuthToken函数。如果您的控制台日志从未被调用,那么错误可能在函数中。
我希望这对我有一点帮助,很抱歉,我对MongoDB不太了解,但是一切似乎都很好。
https://stackoverflow.com/questions/57261548
复制相似问题