我的问题
我应该为这个应用程序使用设计,使用其他一些身份验证解决方案,还是自己动手?
我正在建造的东西
我正在构建一个应用程序,该应用程序将用作商店员工在工作时登录并记录实时信息的信息亭。我需要让用户轻松交换和验证,因为可能有多个员工在共享信息亭时同时工作。(想想餐厅的销售点 (POS) 信息亭——服务器走上来,输入四位数的 PIN 码,并且可以非常快速轻松地下订单等。)我还需要几个管理层,并且需要支持多个-tenency(我还没有决定怎么做,但我会使用多租户),所以我也会有一个多层的“管理”层(对于可能管理多个商店的商店经理、总经理,以及像我这样的系统管理员)。
我预期的四个用户层的总结
- 商店员工- 一个“用户”,可能是使用信息亭(iPad 或 PC)记录工作信息的小时工。用户将能够通过在列表上点击/单击他们的名字并输入一个四位数的 pin 来快速换出(我还不知道该怎么做——这可能是未来 SO 问题的素材)。
- 商店经理 * - 一个“管理员”,可以查看商店的报告并进行其他一些特定于商店的维护。
- 总经理 * - 可以查看多个商店的报告、进行维护和其他管理活动的“管理员”。
超级用户 * - 一个“管理员”,可以操作应用程序中的数据、查看所有数据、运行报告(这基本上是“上帝模式”)。
*所有管理员角色都将通过使用标准用户名/电子邮件地址类型身份验证的管理员登录页面登录。
我还计划进行设置,以便新的总经理可以注册他们的公司以使用该应用程序并为他们的公司添加商店。总经理和商店经理也可以为其商店添加用户(员工)。(因此员工不会自己注册 - 总经理/商店经理将创建和维护员工的帐户。)
新公司注册使用该应用程序的注册/身份验证故事
- 总经理访问应用程序网站,注册公司。
- 总经理提供付款信息。(这样就完成了“公司”账户和“总经理”账户的设置。)
- 总经理设置每个商店(名称,位置等)。这将创建“存储”实例,其中 GM 是初始管理员。)
- 总经理为每个商店创建“商店经理”帐户。(这完成了初始“商店经理”帐户的设置。)
- 商店经理现在可以登录并设置每个商店的数据(员工最终将从信息亭记录的信息)并为其商店的员工创建用户帐户。(这完成了每个商店的“用户”帐户的初始设置。)
- 员工现在可以使用他们的 PIN 从信息亭登录。
我现在拥有的
现在我已经设置了商店员工和超级用户角色 - 我使用这篇很棒的文章进行设置:使用 Devise for Admin Accounts。所以我真的很早 - 在这一点上几乎完全是概念性的。如果我要从最初使用 Devise 的决定中退缩,现在是时候了。我已经构建了应用程序的大部分基本功能,现在正在做网页设计(外观和感觉)并努力构建身份验证/注册层。然后我将添加多租户层。