crabstudio / authenticate
Advance Authenticate plugin for CakePHP 3.2+
Installs: 664
Dependents: 1
Suggesters: 3
Security: 0
Stars: 2
Watchers: 3
Forks: 0
Type:cakephp-plugin
Requires
- php: >=5.6
- cakephp/cakephp: ~3.2
Requires (Dev)
Suggests
- cakephp/cakephp-codesniffer: Allows to check the code against the coding standards used in CakePHP.
- crabstudio/bao-kim: BaoKim payment gateway plugin for CakePHP 3.x
- crabstudio/recaptcha: Simple google recaptcha for CakePHP 3.2+
This package is auto-updated.
Last update: 2024-10-29 04:47:27 UTC
README
Advance Authenticate plugin for CakePHP 3.2+
Support me
Feature
- Prevent brute force attack by IP
- Remember/Auto login
Installation
You can install this plugin into your CakePHP application using composer.
The recommended way to install composer packages is:
composer self-update
composer require crabstudio/authenticate
Or add the following lines to your application's composer.json:
"require": {
"crabstudio/authenticate": "^1.0"
}
followed by the command:
composer update
Load plugin
From command line:
bin/cake plugin load Authenticate
Or add this line to the end of file Your_project\config\bootstrap.php
Plugin::load('Authenticate');
Configure
Config Auth component from AppController.php
// All config key as usual FormAuthenticate/BaseAuthenticate
// I list the different config keys only.
$this->loadComponent('Auth', [
'authenticate' => [
'Authenticate.Advance' => [
'lockout' => [
'retries' => 3,
'expires' => '5 minutes',
'file_path' => 'prevent_brute_force',
'message' => [
'locked' => 'You have exceeded the number of allowed login attempts. Please try again in {0}',
'login_fail' => 'Incorrect username or password. {0} retries remain. Please try again',
]
],
'remember' => [
'enable' => true,
'key' => 'RememberMe',
'expires' => '1 months',
],
],
]);
If you want to store login information to the Cookie, login Form required checkbox
RememberMe as bellow
Paste this function to the AppController.php
// remember to import Event to the AppController.php
use Cake\Event\Event;
public function initialize()
{
parent::initialize();
$this->loadComponent('Cookie');
}
public function beforeFilter(Event $event)
{
//Automaticaly Login.
if (!$this->Auth->user() && $this->Cookie->read('RememberMe')) {
$user = $this->Auth->identify();
if ($user) {
$this->Auth->setUser($user);
} else {
$this->Cookie->delete('RememberMe');
}
}
}
// login.ctp template
<?=$this->Form->create()?>
<?=$this->Flash->render()?>
<?=$this->Form->input('username')?>
<?=$this->Form->input('password')?>
<?=$this->Form->input('RememberMe', ['checked' => false, 'type' => 'checkbox'])?>
<?=$this->Form->input(__('Login'), ['type' => 'submit'])?>
<?=$this->Form->end()?>