xervice / user
2.0.0
2018-08-27 10:44 UTC
Requires
- php: >=7.1.0
- propel/propel: 2.0.0-alpha8
- xervice/core: ^4.0.0
- xervice/data-provider: ^2.0.0
- xervice/database: ^2.0.0
- xervice/session: ^2.0.0
Requires (Dev)
README
Installation
composer require xervice/user
Configuration
You must add LoginTypes to the UserDependencyProvider.
<?php declare(strict_types=1); namespace App\User; class UserDependencyProvider extends XerviceUserDependencyProvider { /** * type => {Login::class} * * @return \Xervice\User\Business\Dependency\Authenticator\Login\LoginInterface[] */ protected function getLoginPluginList(): array { return [ 'Default' => new \Xervice\User\Business\Model\Authenticator\Login\DefaultLogin() ]; } }
Using
// ---- Create User ------
$login = new UserLoginDataProvider();
$login
->setType('Default')
->setUserCredential(
(new UserCredentialDataProvider())
->setHash(
password_hash('myHash', PASSWORD_BCRYPT)
)
);
$user = new UserDataProvider();
$user
->setEmail('test@test.de')
->addUserLogin($login);
// ------ Auth User DataProvider ------
$auth = new UserAuthDataProvider();
$auth
->setType('Default')
->setUser((new UserDataProvider())->setEmail('test@test.de'))
->setCredential((new UserCredentialDataProvider())->setHash('myHash'));
// ------ Auth User ------
$userFacade->auth($auth); // return true
$auth = new UserAuthDataProvider();
$auth
->setType('WrongType')
->setUser((new UserDataProvider())->setEmail('test@test.de'))
->setCredential((new UserCredentialDataProvider())->setHash('wrongHash'));
$userFacade->auth($auth); // return false
$auth = new UserAuthDataProvider();
$auth
->setType('WrongType')
->setUser((new UserDataProvider())->setEmail('test@test.de'))
->setCredential((new UserCredentialDataProvider())->setHash('myHash'));
$userFacade->auth($auth); // throw UserException
// ------ Login User ------
$userFacade->login($auth); // return UserDataProvider or throw UserException
$userFacade->logout(); // remove user from session
$userFacade->getUser(); // Get active user or null