Javascript 对于mongodb中的匿名用户,什么作为密钥而不是用户名和密码传递?
我正在尝试创建一个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
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,所以我想这没关系。