PHPackages                             poweronsystem/authorizationservice - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. poweronsystem/authorizationservice

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

poweronsystem/authorizationservice
==================================

Servicio de autorizacion de usuarios y sectores.

v0.2.2(7y ago)038MITPHPPHP &gt;=5.4

Since Jul 28Pushed 6y agoCompare

[ Source](https://github.com/PowerOnSystem/AuthorizationService)[ Packagist](https://packagist.org/packages/poweronsystem/authorizationservice)[ Docs](https://github.com/poweronsystem/authorizationservice)[ RSS](/packages/poweronsystem-authorizationservice/feed)WikiDiscussions master Synced 6d ago

READMEChangelog (4)Dependencies (3)Versions (5)Used By (0)

PowerOn System - AuthorizationService
=====================================

[](#poweron-system---authorizationservice)

Servicio de autorización de usuarios, inicio, cierre, pausa y resumen de sesión.

Instalación vía Composer
------------------------

[](#instalación-vía-composer)

Podés instalar AuthorizationService vía [Composer](https://getcomposer.org) a través de la consola:

```
$ composer require poweronsystem/authorizationservice
```

Requisitos
----------

[](#requisitos)

- PHP &gt;= 5.4
- poweronsystem/utility: "^0.1.3"

Uso
---

[](#uso)

### Instancia y configuración

[](#instancia-y-configuración)

Creación de la clase y configuración básica de la misma

```
//Autoload composer
require '/vendor/autoload.php';

//Configuración del autenticador (Ver archivo src/Authorization.php)
$config =  [
  'login_session_time' => 7200,
  'login_session_inactive_time' => 3600
];

//Establecemos los permisos para los sectores
$permissions = [];

//Creamos una instancia del autorizador
$auth = new PowerOn\Authorization\Authorization($config, $permissions);
```

### Ejemplo de autenticación de usuarios

[](#ejemplo-de-autenticación-de-usuarios)

#### Adaptador de sesiones

[](#adaptador-de-sesiones)

Adaptador de ejemplo

```
namespace App;

use PowerOn\Database\Model;
use PowerOn\Authorization\AuthorizationAdapterInterface;
use PowerOn\Authorization\UserCredentials;

public class MyAdapter implements AuthorizationAdapterInterface {
    private $db;

    public function __construct($database) {
        $this->db = $database;
    }

    public function login(UserCredentials $credentials) {
        /* Lógica de comprobación de usuario ...
         * Lógica de Password Hasher personalizada ...
         * $user = $db->getUser($credentials->username, $credentials->password);
         * ...
         */

        //Si es inválido retorna FALSE

        //Si es correcto devuelve las credenciales con los datos del usuario que se deseen cargar
        $credentials->setUserData($user);

        //Se establece el nivel de acceso del usuario
        $credentials->setUserAccessLevel($user['access_level']);

        //Otra lógica adicional antes de finalizar...

        return $credentials;
    }

    public function logout() {
        return TRUE;
    }

    public function pauseSession() {
        return TRUE;
    }

    public function resumeSession() {
        return TRUE;
    }

}
```

Registrar adaptador a la clase

```
//Base de datos requerida por el adaptador de ejemplo
$database = new PDO();

//Instancia del adaptador
$adapter = new App\MyAdapter($database);

//Registro del adaptador
$auth->registerAdapter($adapter);
```

#### Inicio de sesión

[](#inicio-de-sesión)

```
//Credenciales obtenidas de un formulario
$credentals = new PowerOn\Authorization\UserCredentials($_POST['username'], $_POST['password']);
try {
  $auth->login($login_credentials);
  //Login success

  echo $auth->getStatus(); //ok

} catch (PowerOn\Authorization\AuthorizationException $e) {
  //Lógica de excepciones

  echo $auth->getStatus(); //user_not_found | user_error
}
```

#### Cierre de sesión

[](#cierre-de-sesión)

```
$auth->logout();

echo $auth->getStatus(); //user_not_found
```

#### Pausa

[](#pausa)

```
$auth->pause();

echo $auth->getStatus(); //paused
var_dump($auth->isValid()); //bool(false)
```

#### Resumen

[](#resumen)

```
$auth->resume();

echo $auth->getStatus(); //ok
echo $auth->getUserCredentials->getSessionInactiveTime(); //120
var_dump($auth->isValid()); //bool(true)
```

### Ejemplo de authorización de sectores

[](#ejemplo-de-authorización-de-sectores)

Ejemplo básico para la validación de sectores

#### Configuración de permisos

[](#configuración-de-permisos)

```
//Establecemos los permisos para los sectores de la siguiente manera
$permissions = [
  //La url "/home" require un nivel de acceso básico de 1
  '/home' => ['access_level' => 1],

  //Cualquier sector referente a "/admin" requerirá un nivel de acceso de 10 o superior
  '/admin/*' => ['access_level' => 10],

  //En este ejemplo solo permitimos el acceso a "/account/new-password" para que el usuario cambie su contraseña
  //solo en caso que haya transcurrido más de un dia desde la última modificación.
  '/account/new-password => ['allowed' => function(\PowerOn\Authorization\UserCredentials $userCredentials) {
      return (time() - $userCredentials['last_password_request_time']) > 86400;
  }]
];

//Creamos una instancia del autorizador
$auth = new PowerOn\Authorization\Authorization($config, $permissions);
```

#### Ejecución de validación de permisos de sectores

[](#ejecución-de-validación-de-permisos-de-sectores)

```
//Clase Request genérica de ejemplo
$request = new \App\MyRequestClass();

//Url obtenida de una clase request
$url = $request->getUrl();

//Otros archivos adicionales a pasar en la función callable del array de permisos con la clave "allowed"
$otherFile = new \App\SomeClass();

$result = $auth->sector($url, $request, $otherFile);

var_dump($result); //bool(false) | bool(true)
echo $auth->getStatus(); //sector_low_access_level | sector_not_allowed
```

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~129 days

Total

4

Last Release

2826d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/141e03e94b49e7e92f50855d07c7c38c6026fdede34e499ecc558755eca844c9?d=identicon)[sosalucas87](/maintainers/sosalucas87)

---

Top Contributors

[![lssosa](https://avatars.githubusercontent.com/u/23502011?v=4)](https://github.com/lssosa "lssosa (20 commits)")

---

Tags

authuserlogin

### Embed Badge

![Health badge](/badges/poweronsystem-authorizationservice/health.svg)

```
[![Health](https://phpackages.com/badges/poweronsystem-authorizationservice/health.svg)](https://phpackages.com/packages/poweronsystem-authorizationservice)
```

###  Alternatives

[lab404/laravel-impersonate

Laravel Impersonate is a plugin that allows to you to authenticate as your users.

2.3k16.4M48](/packages/lab404-laravel-impersonate)[auth0/auth0-php

PHP SDK for Auth0 Authentication and Management APIs.

40820.2M68](/packages/auth0-auth0-php)[auth0/login

Auth0 Laravel SDK. Straight-forward and tested methods for implementing authentication, and accessing Auth0's Management API endpoints.

2745.0M3](/packages/auth0-login)[panique/php-login

A full-feature user authentication / login system embedded into a simple but powerful MVC framework structure

2.2k1.2k](/packages/panique-php-login)[cesargb/laravel-magiclink

Create secure link for access to private data or login in Laravel without password

4571.3M](/packages/cesargb-laravel-magiclink)[auth0/symfony

Symfony SDK for Auth0 Authentication and Management APIs.

128738.1k](/packages/auth0-symfony)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
