首页 > 解决方案 > 使用用户名而不是 IP 地址设置登录限制

问题描述

嗨,我一直在关注这篇关于如何在 laravell 中创建登录限制的文章-> https://webomnizz.com/integrate-throttle-in-custom-login-using-laravel/

这一切都很好,唯一使用:

    $this->incrementLoginAttempts($request);

我遇到的问题是这是基于 IP 的。我有一个前端和一个后端,因此当用户尝试登录 3 次失败时,它会限制该 IP 的整个前端。

有没有一种方法可以根据用户名而不是具体的 IP 来增加登录尝试。还是我必须使用带有增量的单独表格来处理这个问题?

标签: laravel

解决方案


好的,所以我解决了这个问题。我遇到的问题是我的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();
       }
  }

我希望这对将来遇到此问题的人有所帮助


推荐阅读