【发布时间】:2020-10-04 07:15:32
【问题描述】:
我正在 Node/Mongoose + React 中构建这个多租户应用程序。我决定为所有用户建立一个数据库。
我有一个名为companies 的顶级集合,它存储公司基本数据并有一个company_id。
users、inventory 等其他集合中的条目通过此 ID 引用了它们所属的公司。例如,用户架构如下所示:
const UserSchema: mongoose.Schema = new mongoose.Schema({
email: {
type: String,
required: true,
},
password: { type: String, required: true, select: true },
role: { type: String, required: true },
company_id: { type: mongoose.Types.ObjectId }, //REFERENCE TO COMPANY
isVerified: { type: Boolean, required: true, default: false },
});
直到这里一切都好。 我现在如何正确传递 company_id 以确保我只检索相关数据?例如。如果用户 X 属于 A 公司,他只能看到 A 公司的库存。
我想我不确定第 4 步:
用户登录。
他将取回一个包含
company_id信息的 JWT 令牌。- 此令牌将存储在前端某处(我猜是本地存储或 cookie)
- 用户必须检索库存清单。由于库存是一个独特的大集合,我如何将
company_id传递到后端?考虑到这是一个 GET 请求,我认为它应该作为 HTTP 标头传递?或者后端应该只解码每个请求附带的 JWT 并从那里检索company_id?
【问题讨论】:
标签: javascript node.js mongodb security architecture