composer require xervice/user
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()
];
}
}// ---- 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

