laravel - 使用用户名而不是 IP 地址设置登录限制
问题描述
嗨,我一直在关注这篇关于如何在 laravell 中创建登录限制的文章-> https://webomnizz.com/integrate-throttle-in-custom-login-using-laravel/
这一切都很好,唯一使用:
$this->incrementLoginAttempts($request);
我遇到的问题是这是基于 IP 的。我有一个前端和一个后端,因此当用户尝试登录 3 次失败时,它会限制该 IP 的整个前端。
有没有一种方法可以根据用户名而不是具体的 IP 来增加登录尝试。还是我必须使用带有增量的单独表格来处理这个问题?
解决方案
好的,所以我解决了这个问题。我遇到的问题是我的throttleKey 没有检测到用户名值,它被设置为只是访问者的 IP 地址。这是一个问题,因为大多数用户使用相同的 wifi,有时具有相同的 IP 地址。所以我得到了这样的东西:
|127.0.0.1
我所做的是在我的身份验证控制器中添加了一个油门键功能来覆盖默认油门键并指定我自己的油门键来使用
protected function throttleKey(Request $request)
{
if (Config::get('auth.throttle_key') == 'ip') {
return $request->ip();
} else {
return Str::lower($request->username).'|'.$request->ip();
}
}
我希望这对将来遇到此问题的人有所帮助
推荐阅读
- java - 遍历通配符列表并在其元素上调用方法(是铸造糟糕的设计吗?)
- rxjs - RxJS 扫描以使用过滤器和偏移量作为 url 参数来累积数据库结果
- ios - 隐藏的 UIButton 仍然接收触摸事件。下面的水龙头识别器没有
- wildfly - 在 ActiveMQ Artemis 中自动创建地址,即使 auto-create-addresses 值为“false”
- angular - 如何以编程方式显示/隐藏材料表页脚?
- kubernetes - Calico pod Readiness probe 和 Liveness probe 在 Kubernetes1.15.4 中总是失败
- php - 移植到 Laravel:从原始 SQL 转储迁移
- c# - 再次:尝试创建类型控制器时出错
- ios - 为什么自 iOS 13 发布以来 iBeacon 没有触发进入和退出事件
- python - 在 Django Python 中将文件作为下载返回