https://github.com/ethercreative/yii2-login-attempts-behavior
https://github.com/ethercreative/yii2-login-attempts-behavior
Last synced: 11 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/ethercreative/yii2-login-attempts-behavior
- Owner: ethercreative
- License: mit
- Created: 2017-10-23T14:34:13.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2023-06-16T06:15:08.000Z (almost 3 years ago)
- Last Synced: 2025-04-24T07:53:59.490Z (11 months ago)
- Language: PHP
- Size: 10.7 KB
- Stars: 10
- Watchers: 4
- Forks: 8
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## ⚠️ This repo is no longer being maintained.
Yii2 Login Attempts Behavior
========================
Store login failures, and disable after multiple failures.
Installation
------------
The preferred way to install this extension is through [composer](http://getcomposer.org/download/).
Either run
```sh
composer require ethercreative/yii2-login-attempts-behavior
```
or add
```json
"ethercreative/yii2-login-attempts-behavior": "*"
```
to the require section of your `composer.json` file.
Usage
=====
Run the following migration
php yii migrate --migrationPath="vendor/ethercreative/yii2-login-attempts-behavior/src/migrations" --interactive=0
Add the behavior to your login model.
```php
public function behaviors()
{
$behaviors = parent::behaviors();
$behaviors[] = [
'class' => '\ethercreative\loginattempts\LoginAttemptBehavior',
// Amount of attempts in the given time period
'attempts' => 3,
// the duration, for a regular failure to be stored for
// resets on new failure
'duration' => 300,
// the unit to use for the duration
'durationUnit' = 'second',
// the duration, to disable login after exceeding `attemps`
'disableDuration' => 900,
// the unit to use for the disable duration
'disableDurationUnit' => 'second',
// the attribute used as the key in the database
// and add errors to
'usernameAttribute' => 'email',
// the attribute to check for errors
'passwordAttribute' => 'password',
// the validation message to return to `usernameAttribute`
'message' => 'Login disabled',
];
return $behaviors;
}
```
Todo
====
- [ ] Add cache storage
- [ ] Add better DB support
- [ ] Add option for IP (other?) instead of key
- [ ] Add failure delay option
- [ ] More customisable