PHPackages                             alexespinola/login-cuentas - 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. alexespinola/login-cuentas

ActiveLibrary

alexespinola/login-cuentas
==========================

Autenticacion Oauth2 contra el sistema de cuentas

1.0.0(4y ago)02MITPHPPHP ^7.2.5

Since Jun 13Pushed 4y ago1 watchersCompare

[ Source](https://github.com/alexespinola/login-cuentas)[ Packagist](https://packagist.org/packages/alexespinola/login-cuentas)[ RSS](/packages/alexespinola-login-cuentas/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (1)Dependencies (6)Versions (2)Used By (0)

### [![img](img/logoTrenesArgentinos.png)](img/logoTrenesArgentinos.png)

[](#---)

LoginCuentas
------------

[](#logincuentas)

 [![](https://camo.githubusercontent.com/d881974d00be1bba2c204b6b72f15499f14532e57f0e9d14537d71b559c55c28/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d706870266d6573736167653d372e3226636f6c6f723d677265656d)](https://camo.githubusercontent.com/d881974d00be1bba2c204b6b72f15499f14532e57f0e9d14537d71b559c55c28/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d706870266d6573736167653d372e3226636f6c6f723d677265656d) [![](https://camo.githubusercontent.com/9c9484f0261c1deaa21987b5594aa10efd594e58627bbc2e78829dbf23bb982e/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d4c61726176656c266d6573736167653d372e7826636f6c6f723d677265656d)](https://camo.githubusercontent.com/9c9484f0261c1deaa21987b5594aa10efd594e58627bbc2e78829dbf23bb982e/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d4c61726176656c266d6573736167653d372e7826636f6c6f723d677265656d) [ ![Latest Stable Version](https://camo.githubusercontent.com/284247a0d538f664503dcf998dab196ef2b581be981422ca64bee4763ea4e2d1/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d537461626c65266d6573736167653d76312e302e3026636f6c6f723d626c7565) ](https://packagist.org/packages/alexespinola/login-cuentas) [ ![License](https://camo.githubusercontent.com/f45d904953153ca304a2328243d2733e095eee13a631a1f390709885d41dd692/68747470733a2f2f706f7365722e707567782e6f72672f6c61726176656c2f6672616d65776f726b2f6c6963656e73652e737667) ](https://packagist.org/packages/alexespinola/login-cuentas)

**loginCuentas** es una librería que le permite integrar la autenticación de Laravel al sistema de cuentas de Trenes Argentinos.

Esta librería genera todas las rutas, vistas, controladores, etc, necesarios para el proceso de autenticación, por lo tanto usted no debe usar el comando que provee Laravel `php artisan make:auth`.

Ademas de resolver el proceso de autenticación, esta librería provee:

- Una interfaz gráfica para la gestión de usuarios
- Dos middlewares, "CheckToken" y "RefreshToken"

Internamente usa el protocolo de autenticación Oauth2 mediante el package ["league/oauth2-client"](https://packagist.org/packages/league/oauth2-client)

#### Requerimientos

[](#requerimientos)

- PHP: ^7.2
- laravel: ^7
- composer
- En la DB de su aplicación debe existir la tabla **users** con los campos `id` , `name` y `email` (Laravel al incluye por defecto y se genera al ejecutar el comando `php artisan migrate`)

#### Instalación

[](#instalación)

`composer require alexespinola/login-cuentas`

#### Configuración

[](#configuración)

En el archivo `.env` de su aplicaión defina las credenciales de autenticación:

- `clientId=`
- `clientSecret=`
- `redirectUri=http:///authorize`

Opcionalmente puede definir tambien:

- `urlAuthorize=https://cuenta.sofse.gob.ar/oauth2/authorize/`
- `urlAccessToken=https://cuenta.sofse.gob.ar/oauth2/token/`
- `urlResourceOwnerDetails=https://cuenta.sofse.gob.ar/api/user/`
- `urlApiCuentas=https://cuenta.sofse.gob.ar/api/`

##### Archivo de configuración

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

Publique la config de esta librería con el siguiente comando:

`php artisan vendor:publish --provider="loginCuentas\LoginCuentasServiceProvider" --tag="config"`

Esto crea un archivo de configuración en su aplicación: `config/loginCuentas.php`En este archivo usted puede definir:

- La URL a donde redirigir despues del login `'urlRedirectAfterLogin'`.
- La URL para mostrar la vista SHOW de usuarios `urlShowUser`.
- La URL para mostrar la vista EDIT de usuarios `urlEditUser`.

La librería no implementa la funcianalidad para editar o ver detalle de un usuario. Usted debe crear un `userController` en su aplicación que haga estas tareas ademas de las vistas y rutas correspondientes.

##### Middlewares

[](#middlewares)

Esta librería provee dos middlewares: `RefreshToken`: Para renovar el token de usuario automaticamente cuando este expire. `CheckToken`: Para autenticar mediante el header "Authorization" las peticiones a APIs que exponga su aplicaón.

Usted puede usar estos middlewares tanto en grupos de rutas como en el constructor de sus controladores.

###### En grupos de rutas;

[](#en-grupos-de-rutas)

```
Route::group(['middleware' => ['RefreshToken']], function() {
  Route::get('/home', function () {
    return view('home');
  });
  ...
});
```

###### En el constructor de los controladores;

[](#en-el-constructor-de-los-controladores)

```
public function __construct() {
    $this->middleware('CheckToken');
}
```

##### Evento UserWasLogged

[](#evento-userwaslogged)

Es probable que usted necesite realizar acciones cuando un usuario se loguea en su aplicacíon como por ejemplo:

- Guardar los permisos del usuario en una variable de sesión
- Registrar los accesos a la aplicación

Para esto la librería **LoginCuentas** emite un evento **UserWasLogged** para que usted pueda registrar un Listener en su aplicación que escuche dicho evento y realice las acciones que usted desee.

###### Instruciones para implementes el Listener

[](#instruciones-para-implementes-el-listener)

1- Cree el listener `App\Listeners\afterUserLogged.php` siguiendo el ejemplo que se muestra abajo y codifique las acciones que desee en el método **handle**. NOTE que la variable **$event-&gt;userID** contien el ID del usuario logueado.

```
