当用户可以拥有不同的角色时,我如何在 Node js 中授权?

问题描述

我正在为一家公司建立一个网站,用户可以在其中拥有特定于项目的角色。特定用户没有全局角色。我正在使用 MERN 堆栈,并且在 mongo 中有一个公司的数据库在这种情况下,我无法使用 JWT 令牌授权特定用户,因为用户的角色可能会根据项目而变化。那么任何人都可以帮助我如何在我的节点 js 代码中授权特定用户

这是我的项目架构-

const mongoose = require('mongoose')
const validator = require('validator')
const projectSchema = new mongoose.Schema({
    projectName:{
        type:String,required:[true,'Please enter project name']
    },projectStatus:{
        type: String,enum:['ACTIVE','PLANNED','COMPLETED'],},projectOwner:{
        type: mongoose.Schema.Types.ObjectId,ref: "User"
    },projectType: {
        type: String
    },propertyType:{
        type: String
    },projectLocation:{
        type: String
    },projectBudget:{
        type: Number
    },projectFinishDate:{
        type: Date
    },tasks:[{
        type: mongoose.Schema.Types.ObjectId,ref: "Task"
    }],projectRoles: [{
        type: String
    }],purchaSEOrders:[{
        type: mongoose.Schema.Types.ObjectId,ref: "purchaSEOrder"
    }],totalTasks:{
        type: Number,default: 0
    },published:{
        type: Boolean,default: true
    },completedTasks:{
        type: Number,changeOrders:[{
        type: mongoose.Schema.Types.ObjectId,ref: 'changeOrder'
    }],punchList:[{
        type: mongoose.Schema.Types.ObjectId,ref: 'punchList'
    }],Users:[{
        user: {
            type: mongoose.Schema.Types.ObjectId,ref: 'User' 
        },role: {
            type: String
        },permission: {
            type: String
        }
    }]
})
mongoose.model('Project',projectSchema)

此处,用户文档指定了项目的用户以及他们在该特定项目中拥有的权限。在这种情况下,我如何授权用户

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)