Я хочу заблокировать аккаунт, не используя IP-адрес. Laravel - PullRequest
1 голос
/ 22 марта 2020

Laravel имеет функцию блокировки учетной записи. Но он основан на IP-адресе. Это также можно замаскировать. Поэтому я хочу заблокировать саму учетную запись без разницы в IP-адресе

Как это сделать?

Ответы [ 2 ]

1 голос
/ 23 марта 2020

Я сделал пакет для этого:)

Вы можете заблокировать пользователей, электронные письма, IP-адреса, доменные имена, города, штаты, страны, континенты и регионы от использования вашего приложения, входа в систему или регистрации .

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

0 голосов
/ 22 марта 2020

Регулирование не блокируется, поэтому даже если вы изменили его, чтобы не привязывать к 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 означает, что вы блокируете кого-то, если кто-то пытается взломать его аккаунт. Это может быть немного раздражающим для ваших пользователей, что также необходимо учитывать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...