Diferencia entre revisiones de «Usuario:ManuelRomero/Laravel/autentificacion/introduccion»
De WikiEducator
Línea 25: | Línea 25: | ||
;fichero de configuración | ;fichero de configuración | ||
'''''/config/auth.php''''' | '''''/config/auth.php''''' | ||
− | *Un listado de este fichero por defecto | + | *Un listado de este fichero por defecto en la versión 5.2.32 (ver fichero en un proyecto para comentarios) |
<source lang=php> | <source lang=php> | ||
?php | ?php | ||
return array( | return array( | ||
− | + | return [ | |
− | + | //Autentificaciones por defecto | |
− | + | 'defaults' => [ | |
+ | 'guard' => 'web', | ||
+ | 'passwords' => 'users', | ||
+ | ], | ||
− | + | //Configuración de cada autentificación definida previamente | |
− | + | 'guards' => [ | |
− | + | 'web' => [ | |
+ | 'driver' => 'session', | ||
+ | 'provider' => 'users', | ||
+ | ], | ||
− | + | 'api' => [ | |
+ | 'driver' => 'token', | ||
+ | 'provider' => 'users', | ||
+ | ], | ||
+ | ], | ||
− | + | //Almacenamiento de las credenciales para autentificarse | |
+ | 'providers' => [ | ||
+ | 'users' => [ | ||
+ | 'driver' => 'eloquent', | ||
+ | 'model' => App\User::class, | ||
+ | ], | ||
− | + | // 'users' => [ | |
+ | // 'driver' => 'database', | ||
+ | // 'table' => 'users', | ||
+ | // ], | ||
+ | ], | ||
+ | //configuración para resetear la password | ||
− | + | 'passwords' => [ | |
+ | 'users' => [ | ||
+ | 'provider' => 'users', | ||
+ | 'email' => 'auth.emails.password', | ||
+ | 'table' => 'password_resets', | ||
+ | 'expire' => 60, | ||
+ | ], | ||
+ | ], | ||
− | + | ]; | |
</source> | </source> | ||
===Gestionar los datos de la autentificacion=== | ===Gestionar los datos de la autentificacion=== |
Revisión de 22:04 26 may 2016
Concepto
- La autentificación es otra de las muchas tareas comunes en cualquier aplicación que en el fondo no es parte de la aplicación sino un nivel de seguridad o compromiso que nuestra app pretende adoptar.
- Laravel gestiona la autentificación en varios ficheros según vamos a ver a continuación
- La idea es usar un milddeware, entendido como un software intermedio entre la página que solicito y la que el servidor me entrega
- Anteriormente este concepto se conocía como filtro, ahora en esta versión se conoce como Middleware.
- La idea es antes de cargar una página que se verifica ver si el usuario está autentificado
- La descripción algorítmica sería
1.- Si está registrado entrego la página solicitada 2.- Si no lo está le redirijo a una página de logueo para que se acredite o registre 2.-1 Cuando lo halga le doy paso a la página solicitada 3.- En caso de no autentificarles le doy una información de error.
- En Laravel todo está preparado para configurarlo a nuestras necesidades con pocas acciones
- fichero de configuración
/config/auth.php
- Un listado de este fichero por defecto en la versión 5.2.32 (ver fichero en un proyecto para comentarios)
?php return array( return [ //Autentificaciones por defecto 'defaults' => [ 'guard' => 'web', 'passwords' => 'users', ], //Configuración de cada autentificación definida previamente 'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'token', 'provider' => 'users', ], ], //Almacenamiento de las credenciales para autentificarse 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => App\User::class, ], // 'users' => [ // 'driver' => 'database', // 'table' => 'users', // ], ], //configuración para resetear la password 'passwords' => [ 'users' => [ 'provider' => 'users', 'email' => 'auth.emails.password', 'table' => 'password_resets', 'expire' => 60, ], ], ];
Gestionar los datos de la autentificacion
- Por defecto tenemos un modelo llamado User con su tabla por defecto users
- Esa tabla logicamente hay que construirla. Podemos hacerlo con migraciones.
Entre otros campos debe contener
- campo remenber_token de 100 caracteres, permitiendo el valor nulo. Campo usado para recordar entre sesiones
- Para incluir este campo con migraciones usaremos
$table->rememberToken()
- Para gestionar la validación Laravel incluye el modelo app/User.php
Gestión de contraseñas
- make crear una contraseña
Hash::make('secret');
- check validar una contraseña
Hash::check('secret',$hashedPassword);
- Tengo que volver a hacer el hash de una contraseña
if (Hash::needsRehash($hashed)) {
$hashed = Hash::make('secret');
}