我想锁定不使用IP地址的帐户。拉拉韦尔

时间:2020-03-22 07:30:45

标签: laravel

Laravel具有帐户锁定功能。 但是它基于IP地址。 也可以伪装。 因此,我想锁定帐户本身而不用考虑IP地址的不同

我该怎么办?

2 个答案:

答案 0 :(得分:1)

我为此做了一个包装:)

您可以阻止用户,电子邮件,IP地址,域名,城市,州,国家,大洲和地区使用您的应用程序,登录或注册。

https://github.com/jeremykenedy/laravel-blocker

答案 1 :(得分:0)

限制未锁定,因此即使您将其更改为不绑定到IP,该帐户也可以在等待一段时间后再次登录。

如果这是您要执行的操作,则可以覆盖throttleKey函数以使用不基于IP的密钥。如果您想完全禁止某人,那么您也可以将decayMinutes改写为100年。

例如,在您的常规身份验证控制器中:

class class LoginController extends Controller {
    use AuthenticatesUsers;
    // ...

    public $decayMinutes = 52560000; // 100 years

    protected function throttleKey(Request $request)
    {
        return Str::lower($request->input($this->username())); // No IP here now
    }

}

注意:由于速率限制器将值存储在缓存中,因此清除缓存也将清除被阻止的用户。如果需要更永久的解决方案,则可以在数据库中的用户条目上添加一个标志,指示该用户已被阻止。这只是一种快速而肮脏的解决方案,可让您快速地工作。

另一个要点:不通过IP进行阻止意味着,如果其他人试图侵入其帐户,则您将其锁定。对于您的用户来说,这可能有点令人生气,这也是要考虑的事情。