簡體   English   中英

如何檢查用戶具有哪種訪問類型(Node.js和MongoDB)

[英]How to check which type of access user has (Nodejs and mongodb)

我正在為遠程智能設備創建警報跟蹤管理系統。 使用nodejs和mongodb。 想法是這樣的,當設備發出警報時,我希望擁有權限的用戶登錄后可以看到警報錯誤(或錯誤歷史記錄)。假設我有三種類型的用戶,第一種類型只能跟蹤一種設備組,第二個設備組,第三個設備。 對於演示版,我正在考慮在mongodb中創建一個用戶,並添加具有3種類型的設備組的數組,並根據訪問者的訪問權限為每個設備組分配true或false。 我已經有登錄系統,但是我想建議您如何檢查用戶是否有權訪問組1,然后可以在登錄到特定路由等之后將其重定向。我認為創建一個可以某種方式檢查'if(user nameOfgroup1是true),然后重定向到nameOfgroup1視圖”,但不確定如何為這種情況編寫代碼。 我的用戶架構:

    var userSchema = mongoose.Schema({
    local: {
        username: String,
        password: String,
        access:[{

        nameOfgroup1: String,
        available: Boolean
    },
    {   
        nameOfgroup2: String,
        available: Boolean

   }, 
   {    
        nameOfgroup3: String,
        available: Boolean

   }]}});

存儲用戶應有權訪問的一組組ID會更簡單。 這樣,您將來就可以輕松添加更多組,並且檢查給定的組也很容易。

例如,如果用戶在數據庫中的文檔類似於:

{ "username" : "name", "groups" : [ 0, 2 ] }

那么很容易檢查他有權訪問哪些組,也可以通過以下方法檢查特定的組:

function check(user, group) {
  return user.groups.indexOf(group) > -1;
}

同樣,在數據庫中搜索有權訪問給定組的用戶也很容易:

db.users.find({groups:2});

除了數字,您可以使用名稱或ObjectId或任何方便的名稱。

暫無
暫無

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

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