![](/img/trans.png)
[英]Access a page only if a user has admin role (React, Express, NodeJS, 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.