- Notifications
You must be signed in to change notification settings - Fork2
RememberMe authentication adapter plugin for CakePHP
License
nojimage/cakephp-remember-me
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This plugin provides an authentication handler that enables permanent login via cookie. This plugin uses a method of issuing a token instead of setting an encrypted username / password in a cookie.
This library is inspired by Barry Jaspan's article "Improved Persistent Login Cookie Best Practice", and Gabriel Birke's library "https://github.com/gbirke/rememberme".
You can install this plugin into your CakePHP application usingcomposer.
The recommended way to install composer packages is:
php composer.phar require nojimage/cakephp-remember-me:^5.0
Load the plugin by adding the following statement in your project'ssrc/Application.php
:
$this->addPlugin('RememberMe');
or running the console command
bin/cake plugin load RememberMe
Run migration:
bin/cake migrations migrate -p RememberMe
If you're usingcakephp/authentication,useRememberMeTokenIdentifier
andCookieAuthenticator
.
Example of loading RememberMe's Identifier and Authenticator into thegetAuthenticationService
hook withinApplication
:
// in your src/Application.phpclass Applicationextends ...{publicfunctiongetAuthenticationService(...):void {$service =newAuthenticationService();$fields = ['username' =>'email','password' =>'password' ];// ... setup other identifier and authenticator// setup RememberMe$service->loadIdentifier('RememberMe.RememberMeToken',compact('fields'));$service->loadAuthenticator('RememberMe.Cookie', ['fields' =>$fields,'loginUrl' =>'/users/login', ]); }}
more document forgetAuthenticationService
, see:Quick Start - CakePHP Authentication 3.x
The fields for the lookup.
default:['username' => 'username']
$service->loadIdentifier('RememberMe.RememberMeToken', [ 'fields' => [ 'username' => 'email', ], ]);
The identity resolver. If you change your Resolver,it must extendAuthentication\Identifier\Resolver\OrmResolver
.
default:'Authentication.Orm'
$service->loadIdentifier('RememberMe.RememberMeToken', [ 'resolver' => [ 'className' => 'Authentication.Orm', 'userModel' => 'Administrators', ], ]);
A model used for finding login cookie tokens.
default:'RememberMe.RememberMeTokens'
$service->loadIdentifier('RememberMe.RememberMeToken', [ 'tokenStorageModel' => 'YourTokensModel', ]);
A property name when adding token data to identity.
default:'remember_me_token'
$service->loadIdentifier('RememberMe.RememberMeToken', [ 'userTokenFieldName' => 'cookie_token', ]);
The login URL, string or array of URLs. Default is null and all pages will be checked.
default:null
$service->loadAuthenticator('RememberMe.Cookie', [ 'loginUrl' => '/users/login', ]);
The URL checker class or object.
default:'DefaultUrlChecker'
$service->loadAuthenticator('RememberMe.Cookie', [ 'loginUrl' => '/users/login', ]);
When this key is input by form authentication, it issues a login cookie.
default:'remember_me'
$service->loadAuthenticator('RememberMe.Cookie', [ 'rememberMeField' => 'remember_me', ]);
Array that mapsusername
to the specified POST data fields.
default:['username' => 'username']
$service->loadAuthenticator('RememberMe.Cookie', [ 'fields' => [ 'username' => 'email', ], ]);
Write option for login cookie.
- name: Cookie name (default:
'rememberMe'
) - expire: Cookie expiration (default:
'+30 days'
) - path: Path (default:
'/'
) - domain: Domain, (default:
''
) - secure: Secure flag (default:
true
) - httpOnly: Http only flag (default:
true
)
$service->loadAuthenticator('RememberMe.Cookie', [ 'cookie' => [ 'name' => 'rememberMe', 'expires' => '+30 days', 'secure' => true, 'httpOnly' => true, ], ]);
A model used for storing login cookie tokens.
default:'RememberMe.RememberMeTokens'
$service->loadAuthenticator('RememberMe.Cookie', [ 'tokenStorageModel' => 'YourTokensModel', ]);
When this option is set to true, a login cookie is always issued after successful authentication.
default:false
$service->loadAuthenticator('RememberMe.Cookie', [ 'always' => true, ]);
When this option is set to true, expired tokens are dropped after successful authentication.
default:true
$service->loadAuthenticator('RememberMe.Cookie', [ 'dropExpiredToken' => false, ]);
About
RememberMe authentication adapter plugin for CakePHP
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors3
Uh oh!
There was an error while loading.Please reload this page.