繁体   English   中英

我为此会后悔使用Devise吗? RoR,多个用户/管理员层,多租户,快速用户切换

[英]Will I regret using Devise for this? RoR, multiple user/admin layers, multi-tenency, fast user switching

我的问题

我应该为此应用程序使用Devise ,使用其他身份验证解决方案还是自己推出?

我在建什么

我正在构建一个应用程序,该应用程序将用作商店员工的信息亭,以便他们在工作时登录并记录实时信息。 我需要使用户交换和身份验证变得容易,因为共享亭时可能有多个员工同时工作。 (想想餐厅销售点(POS)信息亭-服务器走起来,输入四位数的PIN码,并且可以非常轻松快捷地下达订单等。)我还需要几个管理层,并且需要支持多个-tenency(我尚未决定如何执行此操作,但是我将使用多租户),因此我还将拥有一个多层的“ admin”层(对于商店经理,可能管理多个商店的总经理,以及像我这样的系统管理员)。

我预期的四个用户层的摘要

  1. 商店员工 -一个“用户”,可能是一个小时工,将使用信息亭(iPad或PC)来记录工作信息。 用户可以通过在列表上点击/单击其名称并输入四位数的密码来快速交换(我不知道我将如何执行此操作-这可能是将来出现此类问题的原因)。
  2. 商店管理员* -一个“管理员”,可以查看商店的报告并进行其他一些特定于商店的维护。
  3. 总经理* -一个“管理员”,可以查看多个商店的报告,进行维护以及其他管理活动。
  4. 超级用户* -一个“管理员”,可以操纵应用程序中的数据,查看所有数据,运行报告(基本上是“上帝模式”)。

    *所有管理员角色将使用标准用户名/电子邮件地址类型身份验证通过管理员登录页面登录。

我还计划进行设置,以便新总经理可以注册其公司以使用该应用程序并为其公司添加商店。 总经理和商店经理也将能够为其商店添加用户(雇员)。 (因此,员工不会自行注册-总经理/商店经理将创建并维护员工的帐户。)

新公司注册使用该应用程序的注册/身份验证故事

  • 总经理前往应用程序网站,注册公司。
  • 总经理提供付款信息。 (这将完成“公司”帐户和“总经理”帐户的设置。)
  • 总经理设置每个商店(名称,位置等)。 这将创建“存储”实例,其中GM是初始管理员。)
  • 总经理为每个商店创建“商店经理”帐户。 (这将完成初始“ Store Manager”帐户的设置。)
  • 商店经理现在可以登录并设置每个商店的数据(员工最终将在信息亭中记录有关信息),并为其商店的员工创建用户帐户。 (这将完成每个商店的“用户”帐户的初始设置。)
  • 员工现在可以使用自己的PIN从信息亭登录。

我现在所拥有的

现在,我已经设置了“商店员工”和“超级用户”角色-我使用这篇很棒的文章: 使用Devise for Admin Accounts进行设置 所以我真的很早-在这一点上几乎完全是概念上的。 如果我打算从最初使用Devise的决定中退缩,现在是时候了。 我已经构建了该应用程序的大部分基本功能,现在正在进行网页设计(外观)并致力于构建身份验证/注册层。 然后,我将添加多租户层。

我基本上是.Net开发人员,我只想分享我对多租户的想法。 我认为,在开始之前,您还应该花一些时间在应用程序的多租户方面。 像这样,考虑对应用程序的用户进行身份验证的情况。 由于用户将属于租户,因此有两种方法可以识别您的租户,

隐式:通过使用应用程序的URL。

明确地使用租户标识符,例如他在其工作的商店。

另外,当前,最优选的身份验证机制是拥有一种对您的应用程序用户进行身份验证的SSO方法。 同样,您可以基于租户使这种身份验证模式成为可能。 我相信SaaS应用程序的成功基于它为租户提供的更细粒度的可配置性。 我希望这个想法不在ROR ,对您有所帮助。

最后我确实后悔了Devise,并删除了它。 我将其替换为“从头开始”的解决方案。 该线程是删除Devise的绝佳指南,我添加了一个答案,描述了我用来从头开始构建自己的身份验证的资源:

Ruby:如何卸载Devise?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM