Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对于mongodb中的匿名用户,什么作为密钥而不是用户名和密码传递?_Javascript_Node.js_Database_Mongodb_Mongoose - Fatal编程技术网

Javascript 对于mongodb中的匿名用户,什么作为密钥而不是用户名和密码传递?

Javascript 对于mongodb中的匿名用户,什么作为密钥而不是用户名和密码传递?,javascript,node.js,database,mongodb,mongoose,Javascript,Node.js,Database,Mongodb,Mongoose,我正在尝试创建一个mongodb模式,允许用户匿名发布项目,我已经拥有经过身份验证的用户模式,我正在考虑使用该模式只允许用户发布他们的项目!你知道我该怎么做吗 例如:匿名用户的真实性应该是什么,所有用户的密钥应该是相同的,还是每个用户的密钥都不同等等。。。我对数据库相当陌生,我很困惑。有什么建议吗? 架构用户: const UserSchema = new Schema({ full_name: { type: String, required: true }, us

我正在尝试创建一个mongodb模式,允许用户匿名发布项目,我已经拥有经过身份验证的用户模式,我正在考虑使用该模式只允许用户发布他们的项目!你知道我该怎么做吗

例如:匿名用户的真实性应该是什么,所有用户的密钥应该是相同的,还是每个用户的密钥都不同等等。。。我对数据库相当陌生,我很困惑。有什么建议吗? 架构用户:

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字段,因此您可以使用该字段来识别每个匿名用户

我的建议是使用cookies对用户进行身份验证,您可以使用类似于
passport.js
的库来验证用户并保存其mongodb唯一的\u id,因此当该用户向您的服务器发送请求时,您可以使用类似于
req.user.\u id
的内容获取其\u id


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

一个问题,您希望匿名用户发布项目,还是希望注册用户(具有登录名和密码)匿名发布项目?匿名用户发布项目和数据应存储在数据库中。对于匿名用户,只需放弃用户模型的概念。允许在没有用户的情况下创建项目。如果用户是匿名的,如何将其与用户模型关联?你不能。。。可能在“Project”上添加一个字段,如“Project.anonymous”=布尔值。这确实意味着创建项目的端点必须不受保护。@Raju这取决于您在项目上存储的内容,我建议不要存储文件,但简单的JSON对象是可以的。那么,不,先生,我不希望数据丢失。你能看看@DanStarns Comments吗?数据库中的数据不会丢失,只是匿名用户无法跟踪其项目,因为他的身份验证丢失了。例如,如果你想让每个人都看到所有匿名项目,那么你根本不需要验证用户,只需在项目架构上添加一些标识符,以显示此项目没有用户哦,对了,我有一个gallery.page,所以我想这没关系。