为多态解决方案设计身份验证

时间:2016-07-19 12:19:06

标签: ruby-on-rails ruby devise

考虑一个应用程序,它需要有两种不同类型的用户:

  • User与标准客户端一样
  • Organization作为通过应用程序提供某些服务的实体

要求:

  • 不同的标准控制器(会话,注册等)
  • 当然可以访问应用程序的不同部分

通过简单地使用devise创建两个单独的模型,这似乎是在公园散步,但我真的不想复制如此多的身份验证功能。

我选择了多态关联,其中OrganizationUser是不同的模型,两者都与Entity表示身份验证的关系为1-1。 Entity只有devise个属性(如密码等),而其他属性则属于特定类型的属性。不幸的是,这个解决方案有许多缺点,比如必须定义自定义帮助程序,warden策略和devise失败应用程序。

我想知道,这类问题是否有简明的解决方案?

理想情况下,有两个devise模型将关于身份验证的所有内容委托给一个单独的实体。

0 个答案:

没有答案