【发布时间】:2017-12-09 17:41:41
【问题描述】:
Node.JS API 使用sequelize 作为orm
目前我正在处理node.js 中的api。我正在寻找一种合适的方式来集成基于角色的身份验证。我在 Heroku.com 上托管了一个 React Web 应用程序,它适用于购买我们产品的客户。 (预订管理系统)。
除了网络应用程序之外,我们还有一个 iOS 和 Android 应用程序,供每个客户的客户使用。
API 登录应该如下工作:
- 作为客户的用户应该无法登录到 Web 应用程序。
- 员工用户不能登录移动应用程序。
MySQL 数据库设计:
解释数据库设计:
- 用户既可以是员工也可以是客户,不能同时是两者。
- 每个员工都属于一个组。 (想想营销、销售等)
- 每个组都有特定的权限。 (例如销售可以查看平均收入)
- 原理相同
重要提示:未来模型将包含一个包含公司特定组的额外表格。
问题
【问题讨论】:
-
您需要编写一个中间件来检查用户的组,看看他们是否有权做任何他们想做的事情。 Sequelize 将为您提供登录的用户(如果您想要它的角色和组)。然后由你来检查它们是否被允许。
-
@yBrodsky 感谢您的回复。好的,所以我已经启动并运行了 middelware 以检查用户组。目前的问题是使用 Sequelize 进行设置。如何设置用户 > 客户 > 组 > 组权限 > 权限,例如在注册 HTTP 调用中?
-
好吧,你可以在中间件中做到这一点。了解用户后,只需查找所有其他数据(组、权限等)并查看他们是否尝试访问不应访问的内容。
-
您可以在 Discord/Skype 上聊天吗?我想更详细地解释一下。
-
好吧,如果你有两个注册源做不同的事情,你很可能有两个不同的端点(即
/register/web,/register/app)。是的,你可以创建用户,一旦你有了它的 ID,就可以创建其他关系。
标签: sequelize orm api node.js sequelize node.js mysql node.js sequelize.js