首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nuxtjs -认证

Nuxtjs -认证
EN

Stack Overflow用户
提问于 2019-07-29 21:18:55
回答 1查看 88关注 0票数 0

我用nuxtjs编写了一个注册功能。它在我的数据库中保存了一个新用户。但是,在之后生成令牌(登录用户)似乎存在问题。

寄存器操作由寄存器组件中的方法调用。它返回catch块中的错误响应。在服务器上生成令牌之后,它似乎就失败了。

商店中的操作

代码语言:javascript
复制
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函数

代码语言:javascript
复制
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函数

代码语言:javascript
复制
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;
  });
};

错误消息

我会非常感谢任何帮助!

EN

回答 1

Stack Overflow用户

发布于 2019-07-30 03:06:58

也许这不会有太大帮助,但我会尝试创建一个虚拟令牌,并试图使一切都与它一起工作。我的调试技术之一是隔离我的代码的每一个部分,并确保所有的东西都能一片片地工作,也许这种技术是缓慢的,但大多数情况下它是有效的。

如果一切正常,我将继续调试generateAuthToken函数。如果您的控制台日志从未被调用,那么错误可能在函数中。

我希望这对我有一点帮助,很抱歉,我对MongoDB不太了解,但是一切似乎都很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57261548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档