Diferencia entre revisiones de «Usuario:ManuelRomero/Laravel/autentificacion/introduccion»
De WikiEducator
Línea 11: | Línea 11: | ||
--> | --> | ||
− | === | + | ===Conceptos generales=== |
*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. | *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 | *Laravel gestiona la autentificación en varios ficheros según vamos a ver a continuación | ||
+ | *Larave nos ofrece la autentificación como un servicio | ||
+ | |||
*La idea es usar un milddeware, entendido como un software intermedio entre la página que solicito y la que el servidor me entrega | *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. | + | *De esta forma siempre que solicite una página que necesite estar registrado, antes de servirla voy a verificar si estoy o no registrado |
+ | *Anteriormente (en veriones 4 o anterior), este concepto se conocía como filtro, ahora en esta versión se conoce como ya hemos comentado como '''''Middleware'''''. | ||
*La idea es antes de cargar una página que se verifica ver si el usuario está autentificado | *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 | *La descripción algorítmica sería | ||
Línea 22: | Línea 25: | ||
2.-1 Cuando lo halga le doy paso a la página solicitada | 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. | 3.- En caso de no autentificarles le doy una información de error. | ||
− | *En Laravel todo está preparado para | + | *En Laravel todo está preparado y configurado, para que con unas pequeñas acciones podamos adaptar esa configuración a nuestras necesidades. |
+ | |||
;fichero de configuración | ;fichero de configuración | ||
'''''/config/auth.php''''' | '''''/config/auth.php''''' | ||
Línea 38: | Línea 42: | ||
], | ], | ||
− | //Configuración de cada | + | //Configuración de guards *como los usuario se autentifican en cada solicitud* |
'guards' => [ | 'guards' => [ | ||
'web' => [ | 'web' => [ | ||
Línea 51: | Línea 55: | ||
], | ], | ||
− | // | + | //Configuración de providers *como los usuario recuperar su almacenamiento permanente e.d donde está almacenadas las credenciales para verificar la autentificación |
'providers' => [ | 'providers' => [ | ||
'users' => [ | 'users' => [ |
Revisión de 23:25 26 may 2016
Conceptos generales
- 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
- Larave nos ofrece la autentificación como un servicio
- La idea es usar un milddeware, entendido como un software intermedio entre la página que solicito y la que el servidor me entrega
- De esta forma siempre que solicite una página que necesite estar registrado, antes de servirla voy a verificar si estoy o no registrado
- Anteriormente (en veriones 4 o anterior), este concepto se conocía como filtro, ahora en esta versión se conoce como ya hemos comentado 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 y configurado, para que con unas pequeñas acciones podamos adaptar esa configuración a nuestras necesidades.
- 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 guards *como los usuario se autentifican en cada solicitud* 'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'token', 'provider' => 'users', ], ], //Configuración de providers *como los usuario recuperar su almacenamiento permanente e.d donde está almacenadas las credenciales para verificar la autentificación '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');
}