Diferencia entre revisiones de «Usuario:ManuelRomero/Laravel/autentificacion/introduccion»
Línea 150: | Línea 150: | ||
Migrated: 2014_10_12_100000_create_password_resets_table | Migrated: 2014_10_12_100000_create_password_resets_table | ||
}} | }} | ||
+ | {{MRM_Puntos clave|Title=Campo de validacion| | ||
+ | *Para identificarte por defecto pide el email | ||
+ | *Si quieres que solicite otro campo: | ||
+ | :1.- Establece el nombre del campo en el controlador LoginControler | ||
+ | <source lang=php> | ||
+ | public function username(){ | ||
+ | return ("name"); //Ahora será este el campo por el que se validará | ||
+ | } | ||
+ | :2.-Actualiza la plantilla correspondiente | ||
+ | </source> | ||
+ | |||
+ | |||
+ | }} | ||
Revisión de 11:26 23 abr 2017
Como ver el tema de puertos nmap localhost
El resultado sera una lista con los puertos que tienes abiertos, los protocolos que utilizan y los servicios que están corriendo en este momento.
Para cerrar algún puerto solo es necesario ejecutar una linea como la siguiente en una terminal:
fuser -k 80/tcp -->
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.
- Laravel nos ofrece la autentificación como un servicio.
- Laravel tiene preconfigurada la autentificación la cual la podemos activar de manera sencilla.
Autentificación implementada en Laravel
- 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)
config.php |
---|
?php return array( return [ //Autentificaciones por defecto 'defaults' => [ 'guard' => 'web', 'passwords' => 'users', ], //Configuración de guards *cómo los usuario se autentifican en cada solicitud* 'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'token', 'provider' => 'users', ], ], 7 //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, ], ], ]; |
La autentificación en Laravel está configurada por dos elementos que podemos modificar
- Guards
- Providers
Guards definen cómo los usuarios son autentificados en cada solicitud. Por ejemplo sesiones o tokens Providers Definen cómo se obtienen los datos almacenados de manera persistente en el sistema. (Base de datos, tabla, campos ...)
Activando la autentificación por defecto de laravel
Usamos la línea de comandos con artisan y creamos el módulo auth en nuestra aplicación
{23:44}~ ➭ php artisan make:auth Authentication scaffolding generated successfully. {0:29}~ ➭
además disponemos de 4 controladores para gestionar los usuarios app/Http/Controller/Auth
//... Auth::routes(); Route::get('/home', 'HomeController@index'); //...
|
- Página inicial
protected redirectTo='/home'; De los controladores:
Se puede especificar también el método protected function redirectTo() { return '/path'; } Tip: El método tiene preferencia sobre el atributo
|
- Una vez autentificado el sistema nos lleva a una página
- Esto se especifica en
public function username(){ return ("name"); //Ahora será este el campo por el que se validará } :2.-Actualiza la plantilla correspondiente
|
- 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 haga le doy paso a la página solicitada 3.- En caso de no autentificarse 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. Bastaría con hacer las siguientes acciones como indican en la página de referencia
php artisan make:auth and php artisan migrate
Entonces acceemos a nuestra app http://localhost:8000/register
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');
}