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

Laravel 我想锁定不使用IP地址的帐户。拉维尔,laravel,Laravel,Laravel具有帐户锁定功能。 但它是基于IP地址的。 它也可以伪装。 因此,我想锁定帐户本身,而不考虑IP地址的差异 怎么办?节流未锁定,因此即使您将其更改为不绑定到IP,帐户也可以在等待一段时间后再次登录 如果这是您想要做的,那么您可以覆盖throttleKey功能以使用不基于IP的密钥。如果你想完全禁止某人,那么你也可以将十分钟的值改写为100年 例如,在普通身份验证控制器中: class class LoginController extends Controller { us

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


怎么办?

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

如果这是您想要做的,那么您可以覆盖
throttleKey
功能以使用不基于IP的密钥。如果你想完全禁止某人,那么你也可以将
十分钟
的值改写为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进行阻止意味着如果有人试图入侵他们的帐户,你就把他们锁在外面了。这可能对你的用户有点恼火,这也是一个值得考虑的问题。

< P>我为此做了一个包:

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


Laravel是否有基于IP的帐户锁定?这对我来说是个新闻,你能提供更多细节吗?@apokryfos vendor/laravel/framework/src/illighted/Foundation/Auth/ThrottlesLogins.php throttleKey()谢谢你的回答。我会用这个方法