簡體   English   中英

我如何讓特定用戶只有他們才能訪問 mongodb 和 nodejs 中自己的特定數據

[英]How do i make specific users for only them to have access to their own specific data in mongodb and nodejs

我正在做一個博客項目。 我完成了創建、編輯和刪除帖子的功能。 我還使用護照身份驗證設置和登錄和注冊,並且已經可以將頁面限制為僅登錄用戶。 我還想將帖子的編輯和刪除限制為僅限創建帖子的用戶。 我似乎無法弄清楚這兩個集合的鏈接方式(一個是用戶集合,另一個是帖子集合)。

下面是兩個 collections 的架構

帖子架構

const articleSchema = new mongoose.Schema({
    title: {
        type: String,
        required: true
    },
    description: {
        type: String,
        required: true
    },
    markdown: {
        type: String,
        required: true
    },
    createdAt: {
        type: Date,
        default: Date.now
    },
    slug: {
        type: String,
        required: true,
        unique: true
    },
    sanitizedHTML: {
        type: String,
        required: true
    }
})

用戶架構

const UserSchema = new mongoose.Schema({
    name: {
        type: String,
        required: true
    },
    email: {
        type: String,
        required: true
    },
    password: {
        type: String,
        required: true
    },
    date: {
        type: Date,
        default: Date.now
    }
});

在 articleSchema 中,您需要一個 createdBy 字段,該字段將與createdBy中的 id 鏈接。 因此,當用戶登錄時,您將獲得用戶的 ID。 通過它您可以檢查帖子是否由該特定用戶創建。 這是目前最適合您的情況的方法。

如果你想擁有更廣泛的角色。 例如可以編輯任何文章的編輯。 有兩種方法可以做到:

如果您需要多個角色並且他們的權限是可配置的

您需要創建具有角色名稱、權限等的 roleSchema。在 userSchema 中將有一個名為 role 的字段,對應於每個用戶的 role_id。 這將允許您將來通過 UI 輕松更改權限並創建新角色。

如果你只是有幾個角色並且確信它不會經常改變

您可以自己定義這些角色是什么:例如 1 -> Editor、2 -> Subscriber、3 -> Admin 等。然后在 userSchema 中添加一個角色字段來放置相關角色。 這將允許您對每個角色擁有固定的權限。 現在,當您對文章進行任何操作時,您可以獲得角色並進行相應的過濾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM