在Node API中的Create操作中引用用户ID

时间:2017-09-19 03:38:57

标签: node.js express mongoose

我正在创建一个To Do API来学习Node / Express(来自Rails)。我有一个用户模型和一个包含项目(任务)的列表模型。这是我的List模式的样子:

const listSchema = new Schema({
  user_id: Schema.Types.ObjectId,
  items: [Item.schema],
  title: String,
  private: Boolean
});

如您所见,我正在引用用户ID以及嵌入的Items数组。

我正在尝试在listController中创建一个类似于:

的创建操作
exports.createList = (req, res) => {
  const list = {
    user_id: //umm...
    title: req.body.title,
    private: req.body.private
  }
  List.create(list);
};

如何添加对(已登录)user_id的引用?如果我将user: user.id包含在user: req.body.user.id之内,那么发送list会是前端应用的工作吗?

注意:如果重要,我使用passport-jwt进行用户身份验证。

1 个答案:

答案 0 :(得分:0)

  

如果我将用户名:req.body.user.id包含在列表中,那么发送用户:user.id会是前端应用的工作吗?

您不应该从客户端通过userId - 它不安全。从请求本身获取userId。对于经过身份验证的请求,您可以从req对象 - https://github.com/themikenicholson/passport-jwt#authenticate-requests

中获取用户