多用户认证授权

Multiple users authenticating and authorizing

目前我对授权和验证有点困惑。

首先,我需要向您介绍一下我的项目。它将有两个主要模型:用户和专业人士。用户是请求服务的人。专业人士是提供服务的人。专业人士可能有非常不同的工作,因此在我的项目中存储的数据类型也非常不同。 我计划为 Pros(摄影师、婚礼策划师等)从事的不同类型的工作采用不同的模型。这些模型将具有关系和 "own" 不同的其他模型(添加回形针的图像、网站链接...)。

我想我需要使用 gems 进行身份验证和授权(我考虑到了 DevisePundit

现在我的问题是:

Pundit 是实现第二点的完美选择。您可以将某些操作(例如 edit/update)限制为只能由拥有该帐户的 Pro 执行。 ProPolicy 中这些操作的代码类似于:

def edit?
  update?
end

def update?
  record.pro == user
end

关于您关于使用 Devise 进行多用户模型身份验证的问题,您能否解释一下为什么您打算为两个用户设置一个登录表单?您可以在登录按钮上有一个下拉菜单,用户可以 select 如果他是普通用户或专业用户。或者你甚至可以在表单上有一个 checkbox/select 他们 select 他们想使用哪种登录类型。

如果没有,那么您将不得不以某种方式检查您的数据库以查看登录名是否存在于 Pro 或 User 表中。但是,我想这意味着您不能使用同一电子邮件同时拥有专业帐户和用户帐户。