微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决当用户可以拥有不同的角色时,我如何在 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 举报,一经查实,本站将立刻删除。