我有一个问题,我正在使用Laravel 5.3开发一个小网站,并使用他们的基本身份验证让用户注册和登录。
现在我想要实现以下功能:每个人都可以注册和登录,但如果我(作为管理员)点击一个按钮,我可以“封锁”一个特定的用户(例如,如果他做了一些不允许的事情),我不会完全删除数据库中的行,但是我要确保如果该用户尝试登录,他会收到一条消息,说类似“您无法再登录,您的帐户已被封锁,请联系管理员获取更多信息”。问题是:最佳方法是什么?如果我错了,请纠正我,因为我没有找到内置的东西... 当然,我可以只更改用户表并添加一个名为“blocked”的列,通常设置为false,然后使用按钮将其设置为true,然后在登录时检查此值并(如果为true)显示此消息并禁止登录。这是最好的方法吗?如果是,我需要在哪里检查此值,如何显示消息?如果不是,有更好的方法吗?
现在我想要实现以下功能:每个人都可以注册和登录,但如果我(作为管理员)点击一个按钮,我可以“封锁”一个特定的用户(例如,如果他做了一些不允许的事情),我不会完全删除数据库中的行,但是我要确保如果该用户尝试登录,他会收到一条消息,说类似“您无法再登录,您的帐户已被封锁,请联系管理员获取更多信息”。问题是:最佳方法是什么?如果我错了,请纠正我,因为我没有找到内置的东西... 当然,我可以只更改用户表并添加一个名为“blocked”的列,通常设置为false,然后使用按钮将其设置为true,然后在登录时检查此值并(如果为true)显示此消息并禁止登录。这是最好的方法吗?如果是,我需要在哪里检查此值,如何显示消息?如果不是,有更好的方法吗?
Illuminate\Foundation\Auth\AuthenticatesUsers
的login方法。如果你将该类中的login方法复制到你的AuthController中,Laravel将使用AuthController版本。这样你就可以修改它以适应你的需求。(这是针对Laravel 5.2的,但我相信这些类名在5.3中是相同的) - jackel414App\Http\Controllers\Auth\LoginController
)。 - jackel414AuthenticateUsers
中复制函数login
,将其覆盖在LoginController中,并添加您提供的if条件以及添加两个方法(sendLockedAccountResponse
和getLockedAccountMessage
),对吗?在这之前,我会确保有一个按钮将数据库中的locked
列设置为true,这就是您的意思吗? - nameless