多用户认证授权
Multiple users authenticating and authorizing
目前我对授权和验证有点困惑。
首先,我需要向您介绍一下我的项目。它将有两个主要模型:用户和专业人士。用户是请求服务的人。专业人士是提供服务的人。专业人士可能有非常不同的工作,因此在我的项目中存储的数据类型也非常不同。 我计划为 Pros(摄影师、婚礼策划师等)从事的不同类型的工作采用不同的模型。这些模型将具有关系和 "own" 不同的其他模型(添加回形针的图像、网站链接...)。
我想我需要使用 gems 进行身份验证和授权(我考虑到了 Devise 和 Pundit)
现在我的问题是:
我想让所有用户和专家通过同一个表单登录。
我想这是一个非常设计的东西。虽然在阅读了一些关于 Devise 的内容之后,似乎每个模型都有一个登录名。但是这个帖子提到了 Devise "groups"
https://gorails.com/forum/devise-with-multiple-user-models-with-single-login-form
一定能解决我单表单登录的问题吗?
我想让每个 Pros 子模型向任何类型的用户甚至来宾显示他们的记录预览。但是当 Pro 登录时,他们可以访问包含更多信息的扩展配置文件视图(所有可以更改的个人数据、用户的价格请求等)。你能确认这是 Pundit 的工作吗?
Pundit 是实现第二点的完美选择。您可以将某些操作(例如 edit/update)限制为只能由拥有该帐户的 Pro 执行。 ProPolicy 中这些操作的代码类似于:
def edit?
update?
end
def update?
record.pro == user
end
关于您关于使用 Devise 进行多用户模型身份验证的问题,您能否解释一下为什么您打算为两个用户设置一个登录表单?您可以在登录按钮上有一个下拉菜单,用户可以 select 如果他是普通用户或专业用户。或者你甚至可以在表单上有一个 checkbox/select 他们 select 他们想使用哪种登录类型。
如果没有,那么您将不得不以某种方式检查您的数据库以查看登录名是否存在于 Pro 或 User 表中。但是,我想这意味着您不能使用同一电子邮件同时拥有专业帐户和用户帐户。
目前我对授权和验证有点困惑。
首先,我需要向您介绍一下我的项目。它将有两个主要模型:用户和专业人士。用户是请求服务的人。专业人士是提供服务的人。专业人士可能有非常不同的工作,因此在我的项目中存储的数据类型也非常不同。 我计划为 Pros(摄影师、婚礼策划师等)从事的不同类型的工作采用不同的模型。这些模型将具有关系和 "own" 不同的其他模型(添加回形针的图像、网站链接...)。
我想我需要使用 gems 进行身份验证和授权(我考虑到了 Devise 和 Pundit)
现在我的问题是:
我想让所有用户和专家通过同一个表单登录。 我想这是一个非常设计的东西。虽然在阅读了一些关于 Devise 的内容之后,似乎每个模型都有一个登录名。但是这个帖子提到了 Devise "groups"
https://gorails.com/forum/devise-with-multiple-user-models-with-single-login-form 一定能解决我单表单登录的问题吗?我想让每个 Pros 子模型向任何类型的用户甚至来宾显示他们的记录预览。但是当 Pro 登录时,他们可以访问包含更多信息的扩展配置文件视图(所有可以更改的个人数据、用户的价格请求等)。你能确认这是 Pundit 的工作吗?
Pundit 是实现第二点的完美选择。您可以将某些操作(例如 edit/update)限制为只能由拥有该帐户的 Pro 执行。 ProPolicy 中这些操作的代码类似于:
def edit?
update?
end
def update?
record.pro == user
end
关于您关于使用 Devise 进行多用户模型身份验证的问题,您能否解释一下为什么您打算为两个用户设置一个登录表单?您可以在登录按钮上有一个下拉菜单,用户可以 select 如果他是普通用户或专业用户。或者你甚至可以在表单上有一个 checkbox/select 他们 select 他们想使用哪种登录类型。
如果没有,那么您将不得不以某种方式检查您的数据库以查看登录名是否存在于 Pro 或 User 表中。但是,我想这意味着您不能使用同一电子邮件同时拥有专业帐户和用户帐户。