【问题标题】:Express.js: user access just the data created by themExpress.js:用户只访问他们创建的数据
【发布时间】:2019-03-23 00:07:39
【问题描述】:

我在 Express.js 和 MongoDB 上苦苦挣扎。 我已经配置了passport login和passport-jwt,它工作得很好,但是现在我有一个问题。 例如我有两个用户和一个表,我希望当第一个用户登录应用程序时,他们可以访问他们创建的数据。 什么是最好的解决方案?每个用户创建一个表? 帮助我,感谢您的帮助!

【问题讨论】:

    标签: node.js express mongoose passport.js passport-jwt


    【解决方案1】:

    您可以通过添加以下内容来更新将存储在表中的数据架构:

    owner {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'User'
    }
    

    虽然 user 将是创建为 users 数据库的模型的名称,因此该表中的每个数据都将具有其所有者的 id,并且每次您想要显示该数据或发送给用户时,您可以检查是否 id该数据的所有者的ID等于已经登录的用户的ID,并且取决于您是否可以显示表的数据。
    并且用户的 id 将存储在 req.user._id 中,这将由护照包创建。

    【讨论】:

    • 很好的解决方案 DrJempo,简单。是的,我会尝试这种方式。谢谢
    • 如果您不希望用户创建大量数据,您可以添加data 作为用户对象的子文档。或者,将数据存储在单独的集合中并添加属性createdBy: [user id]
    猜你喜欢
    • 1970-01-01
    • 2014-12-18
    • 2022-01-16
    • 2017-10-29
    • 2020-11-04
    • 1970-01-01
    • 2017-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多