代码之家  ›  专栏  ›  技术社区  ›  Kazi

如何让两个用户同时登录Laravel应用程序

  •  1
  • Kazi  · 技术社区  · 8 年前

    请帮助我在Laravel设计以下案例:

    Laravel应用程序的每个实例(例如一家公司)都将有一个单独的用户名(超级用户),可以控制子用户。超级用户将登录应用程序一次,以允许子用户在一天中多次登录和注销。如果超级用户没有登录,子用户将无法访问应用程序。

    示例:经理每天登录一次的POS系统。它不会一整天都自动注销。出纳员只需轻触密码即可访问,5分钟后即可自动注销。商店里只有一个系统,所以收银员必须不断开关。如果经理不登录,出纳将无法使用POS。

    我是拉雷维尔的新手。我知道我需要多个守卫,但我如何访问auth,使它不会一直将我指向超级用户?我正在考虑对超级用户使用默认的laravel身份验证。但是其他用户呢?

    非常感谢您向正确方向提供的任何帮助或指点! 谢谢

    1 回复  |  直到 8 年前
        1
  •  0
  •   sam    8 年前

    Laravel不能一次持久化多个经过身份验证的用户,但对于这个系统,您不一定需要它,事实上,如果没有它,您可以设计一个更健壮的系统。

    定义问题(而不是解决方案),我们可以这样说,“系统必须允许经理启用和禁用出纳员的POS,以便他们只有在授权时才能访问”。

    可以使用单个Laravel身份验证系统,使用不同的角色来构建实现该目标的系统( manager ,则, cashier )以及关联的权限。这(幸运的)对于Laravel来说非常简单。

    用户流程大致如下:

    1. 出纳访问POS终端
    2. 出纳点击“登录”
    3. 出纳输入其身份详细信息
    4. 系统找到用户,确定他们是出纳,然后检查出纳是否允许登录
      • 如果是,则出纳已登录并能够访问POS功能
      • 如果否,则拒绝出纳登录并显示错误

    经理流程大致如下:

    1. 经理访问POS终端
    2. 经理单击“登录”
    3. 经理输入其识别详细信息
    4. 系统接受他们的登录并将其发送到管理仪表板

    管理仪表板是经理控制其他用户(创建和管理出纳员(编辑、删除、审核))并将出纳员的系统状态设置为激活状态的地方,这将受到以下保护 policies

    在业务开始时,经理将登录到POS,并通过将“活动”标志设置为true来为出纳员激活POS,然后经理将注销。一整天,任何出纳都可以登录并使用它。当天结束时,经理将登录并停用出纳员的POS。

    该系统的另一个好处是,您可以允许经理 而且 作为出纳员,如果他们需要在白天使用POS,他们就不需要单独的账户。用户管理器状态可以是 is_manager 数据库列。您还可以实现程序化的预定POS可用性,即:“允许收银员在上午9点到下午5点之间登录”。

    Laravel是这个项目的一个很好的选择,因为它提供了您所需要的一切,如果您对您的实现有任何其他问题,请告诉我:-)