xervice/user

2.0.0 2018-08-27 10:44 UTC

This package is auto-updated.

Last update: 2024-03-29 03:26:12 UTC


README

Scrutinizer Code Quality Code Coverage

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