belcebur/belcebur-auth

Doctrine2 multiple authentification

v1.0.1 2017-08-14 06:32 UTC

This package is auto-updated.

Last update: 2022-06-26 13:12:54 UTC


README

Install from composer / Instalar desde Composer

composer require belcebur/belcebur-auth

Packagist: https://packagist.org/packages/belcebur/belcebur-auth

GitHub: https://github.com/Belcebur/BelceburAuth

Configure Adapters / Configurar Adaptadores

Service Manager

English

Create an adapter using the service manager and indicate the name of the service.

You can use one method or both simultaneously

Español

Crear un adaptador mediante el gestor de servicios e indicar el nombre de los servicios.

*Se puede usar un metodo o los dos simultaneamente.*

Example

<?php
return array(
    'service_manager' => array(
        'factories' => array(
            'serviceName1' => function (\Zend\ServiceManager\ServiceLocatorInterface $sm) {
                return new \DoctrineModule\Authentication\Adapter\ObjectRepository(array(
                    'object_manager'      => $sm->get('Doctrine\ORM\EntityManager'),
                    'identity_class'      => 'Application\Entity\User',
                    'identity_property'   => 'email',
                    'credential_property' => 'password',
                    'credentialCallable'  => function (\Application\Entity\User $entity, $password) {
                        return md5($password);
                    }
                ));
            },
            'serviceName2' => function (\Zend\ServiceManager\ServiceLocatorInterface $sm) {
                  return new \DoctrineModule\Authentication\Adapter\ObjectRepository(array(
                      'object_manager'      => $sm->get('Doctrine\ORM\EntityManager'),
                      'identity_class'      => 'Application\Entity\Member',
                      'identity_property'   => 'username',
                      'credential_property' => 'password',
                      'credentialCallable'  => function (\Application\Entity\Member $entity,$password) {
                          return md5($password);
                      }
                  ));
              },
        ),
    ),
    'belcebur'        => array(
        'belcebur-auth' => array(
            'auth-factories' => array(
                'sm-factories'     => array('serviceName1',serviceName2,....),
                'config-factories' => array()
            )
        ),
    ),
);

Auto Create Service / Auto creando el Servicio

 <?php
 return array(
     'belcebur'        => array(
         'belcebur-auth' => array(
             'auth-factories' => array(
                 'sm-factories'     => array(),
                 'config-factories' => array(
                     'serviceName1' => array(
                         'identity_class'      => 'Application\Entity\User',
                         'identity_property'   => 'email',
                         'credential_property' => 'password',
                         'credentialCallable'  => function (\Application\Entity\User $entity,$password) {
                             return md5($password);
                         }
                     )
                 ),
             )
         ),
     ),
 );

Enable Module / Activar Módulo

English

Add to file "application.config.php" the module name BelceburAuth.

Español

Añadir al archivo "application.config.php" el nombre del módulo BelceburAuth.

Example:

<?php
return array(
    'modules' => array(
        'Application',
        'BelceburAuth'
    ),
);

How To Use It? / ¿Como utilizarlo?

In The Controller / En El Controller

English

First call to service, and then ask the identity_class indicating that applies adapter.

Español

Primero llamamos al servicio, y luego le pedimos el adaptador indicando el identity_class al que aplica.

Example

    /**
     * @var \BelceburAuth\Service\AuthenticationFactory             $authFactory
     * @var \DoctrineModule\Authentication\Adapter\ObjectRepository $adapter
     * @var \Zend\Authentication\Result                             $result
     */
    $authAdapters = $this->getServiceLocator()->get('AuthenticationFactory');
    $adapter      = $authAdapters->getAuthAdapter('Application\Entity\User');
    $adapter->setIdentity($identity);
    $adapter->setCredential($password);
    $result = $authAdapters->authenticate($adapter);

    var_dump($this->identity());
    die;