vojtech-dobes / nette-multi-authenticator
Allows definition of multiple authentication ways with unified API (for Nette Framework).
Installs: 4 187
Dependents: 0
Suggesters: 0
Security: 0
Stars: 37
Watchers: 4
Forks: 3
Open Issues: 0
Requires
- php: >=5.3.2
- nette/nette: ~2.0
This package is not auto-updated.
Last update: 2024-10-26 14:28:59 UTC
README
Allows definition of multiple authentication ways with unified API (for Nette Framework)
License
Dependencies
Nette 2.0 or newer
Installation
None, really :).
Usage
Write your authenticators, but don't make them implement Nette\Security\IAuthenticator
. On the other hand, request Nette\Security\User
service as dependency.
class CredentialsAuthenticator { /** @var Nette\Security\User */ private $user; public function __construct(Nette\Security\User $user) { $this->user = $user; } }
Now write your login method. Be creative!
public function login($username, $password) { // ... your logic $this->user->login(new Identity( ... )); }
Register your authenticator as service:
services: - CredentialsAuthenticator
And you're done.
For authentication, you should use the specific authenticator:
class SignPresenter extends Nette\Application\UI\Presenter { /** @var CredentialsAuthenticator @inject */ public $credentialsAuthenticator; // ... public function processLoginForm($form) { $values = $form->getValues(); $this->credentialsAuthenticator->login($values->username, $values->password); } }
The point is: use normal dependencies and wrap Nette\Security\User
in them, not the other way around.