如何让 2 个用户同时登录 Laravel 应用程序
Posted
技术标签:
【中文标题】如何让 2 个用户同时登录 Laravel 应用程序【英文标题】:How can I have 2 users logged in at the same time in a Laravel App 【发布时间】:2018-09-20 14:23:02 【问题描述】:请帮助我在 Laravel 中构建以下案例:
Laravel 应用程序的每个实例(例如公司)都有一个可以控制子用户的用户名(超级用户)。超级用户将登录一次应用程序,以允许子用户全天多次登录和退出。没有超级用户登录,子用户根本无法访问应用程序。
示例:经理每天登录一次的 POS 系统。它不会全天自行注销。收银员只需输入密码即可获得访问权限,并在 5 分钟后自动注销。商店里只有一个系统,所以收银员必须不断地打开和关闭。如果经理不登录,收银员根本无法使用POS。
我是 Laravel 的新手。我知道我需要多个警卫,但我如何访问身份验证,这样它就不会一直将我引导到超级用户?我正在考虑为超级用户使用默认的 laravel 身份验证。但是其他用户呢?
非常感谢任何正确方向的帮助或指示! 谢谢!
【问题讨论】:
【参考方案1】:Laravel 不能同时保存多个经过身份验证的用户,但对于这个系统,你不一定需要它,事实上,没有它你可以设计一个更健壮的系统。
定义问题(而不是解决方案)时,我们会说“系统必须允许经理为收银员启用和禁用 POS,以便他们只有在获得授权时才能访问它”。
可以使用单个 Laravel 身份验证系统构建实现该目标的系统,使用不同的角色(manager
、cashier
)和相关权限。这(幸运的是)在 Laravel 中非常简单。
用户流程如下:
-
收银员访问 POS 终端
收银员点击“登录”
收银员输入他们的身份信息
系统找到用户,识别出他们是收银员,然后检查收银员是否被允许登录
如果是,则收银员已登录并能够访问 POS 功能
如果否,则收银员登录被拒绝并出现错误
经理流程大致如下:
-
经理访问 POS 终端
经理点击“登录”
经理输入他们的身份信息
系统接受他们的登录并将他们发送到管理仪表板
管理仪表板是经理可以控制其他用户(创建和管理收银员(编辑、删除、审核))并将系统状态设置为收银员激活的地方,这将受到policies 的保护。
在业务开始时,经理将登录到 POS 并通过将“活动”标志设置为 true 来为收银员激活它,然后经理将注销。一整天,任何收银员都可以登录并使用它。在一天结束时,经理将登录并停用收银员的 POS。
此系统的另一个好处是您可以让经理也成为收银员,因此如果他们需要在白天使用 POS,他们就不需要单独的帐户。用户管理器状态可以是一个简单的is_manager
数据库列。您还可以实现程序化预定的 POS 可用性,即:“允许在上午 9 点到下午 5 点之间从收银员登录”。
Laravel 是这个项目的绝佳选择,因为它开箱即用地提供了您所需的一切,如果您对您的实施有任何其他问题,请告诉我 :-)
【讨论】:
以上是关于如何让 2 个用户同时登录 Laravel 应用程序的主要内容,如果未能解决你的问题,请参考以下文章