javascript - 在 mongodb 中,作为 key 而不是匿名用户的用户名和密码传递什么?

标签 javascript node.js database mongodb mongoose

我正在尝试创建一个 mongodb 模式,在该模式中我允许该人匿名发布项目,我已经拥有经过身份验证的用户模式,并且我正在考虑仅使用它来允许用户发布他们的项目!关于我应该如何进行的任何想法?

例如:就像匿名用户的真实性应该是什么一样,对于所有用户来说应该是相同的 key ,还是对于每个用户来说都是不同的 key 等等......我对数据库相当陌生,我很困惑。有什么建议给我吗? 架构用户:

const UserSchema = new Schema({
  full_name: {
    type: String,
    required: true
  },
  username: {
    type: String,
    required: true
  },
  email: {
    type: String
  },
  password: {
    type: String,
    required: true
  },
  avatar: {
    type: String
  },
  date: {
    type: Date,
    default: Date.now
  },
  projects: [{ type: Schema.Types.ObjectId, ref: "projects" }]
});

谢谢

最佳答案

mongodb 中的每个文档都有一个自动生成的唯一_id 字段,因此您可以使用该字段来识别每个匿名用户。

我的建议是使用cookie来验证用户,您可以使用像passport.js这样的库来验证用户并保存其mongodb唯一_id,这样当该用户向您发送请求时服务器,您可以使用类似 req.user._id 的内容获取其 _id。

一个可能的缺点是,当匿名用户清除他的 cookie 时,他将失去身份验证,从而失去对其项目的访问权限。

关于javascript - 在 mongodb 中,作为 key 而不是匿名用户的用户名和密码传递什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58450525/

相关文章:

javascript - 获取唯一的类名并循环遍历它们

javascript - 在javascript中解析具有未知字段名称的json数组

mysql - 计算带有多个包含的 Sequelize 的连接

node.js - 检查当前用户是否登录

mysql - 如何更改MySQL数据库表中的自增主键?

php - 配方/成分/测量/数量的数据库模式

javascript - 为什么 window.onload 仅在某些时候被调用进行刷新?

javascript - 如何在 Firefox chrome 中使用自定义全局上下文运行脚本?

node.js - 如何从koa2中的多部分数据解析流

Java PreparedStatement Cross-DB with casting