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