|
|
(10 revisiones intermedias por el mismo usuario no mostrado) |
Línea 1: |
Línea 1: |
| {{:Usuario:ManuelRomero/micursos/Laravel/autentificacion/nav}} | | {{:Usuario:ManuelRomero/micursos/Laravel/autentificacion/nav}} |
| {{__TOC__}} | | {{__TOC__}} |
| + | https://www.youtube.com/watch?v=BXXmboZRLYo |
| <div class=parrafo> | | <div class=parrafo> |
− | | + | <!-- |
− | ===Conceptos generales===
| + | {{MRM_actividad|Title=Para recordoar| |
− | *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.
| + | ;Instalacion |
− | *Laravel gestiona la autentificación en varios ficheros según vamos a ver a continuación.
| + | composer require "laravel/breeze" |
− | *Laravel nos ofrece la autentificación como un servicio.
| + | php artisan breeze:install |
− | *Laravel tiene preconfigurada la autentificación la cual la podemos activar de manera sencilla.
| + | (tener instalado nodejs y npm) |
− | ====Autentificación implementada en Laravel====
| + | npm install |
− | ;Fichero de configuración
| + | |
− | config/auth.php
| + | |
− | | + | |
− | *Un listado de este fichero
| + | |
− | {{Plegable|hide|config.php|
| + | |
− | <source lang=php> | + | |
− | <?php
| + | |
− | <?php
| + | |
− | | + | |
− | return [
| + | |
− | | + | |
− | /*
| + | |
− | |--------------------------------------------------------------------------
| + | |
− | | Authentication Defaults
| + | |
− | |--------------------------------------------------------------------------
| + | |
− | |
| + | |
− | | This option controls the default authentication "guard" and password
| + | |
− | | reset options for your application. You may change these defaults
| + | |
− | | as required, but they're a perfect start for most applications.
| + | |
− | |
| + | |
− | */
| + | |
− | | + | |
− | 'defaults' => [
| + | |
− | 'guard' => 'web',
| + | |
− | 'passwords' => 'users',
| + | |
− | ],
| + | |
− | | + | |
− | /*
| + | |
− | |--------------------------------------------------------------------------
| + | |
− | | Authentication Guards
| + | |
− | |--------------------------------------------------------------------------
| + | |
− | |
| + | |
− | | Next, you may define every authentication guard for your application.
| + | |
− | | Of course, a great default configuration has been defined for you
| + | |
− | | here which uses session storage and the Eloquent user provider.
| + | |
− | |
| + | |
− | | All authentication drivers have a user provider. This defines how the
| + | |
− | | users are actually retrieved out of your database or other storage
| + | |
− | | mechanisms used by this application to persist your user's data.
| + | |
− | |
| + | |
− | | Supported: "session"
| + | |
− | |
| + | |
− | */
| + | |
− | | + | |
− | 'guards' => [
| + | |
− | 'web' => [
| + | |
− | 'driver' => 'session',
| + | |
− | 'provider' => 'users',
| + | |
− | ],
| + | |
− | ],
| + | |
− | | + | |
− | /*
| + | |
− | |--------------------------------------------------------------------------
| + | |
− | | User Providers
| + | |
− | |--------------------------------------------------------------------------
| + | |
− | |
| + | |
− | | All authentication drivers have a user provider. This defines how the
| + | |
− | | users are actually retrieved out of your database or other storage
| + | |
− | | mechanisms used by this application to persist your user's data.
| + | |
− | |
| + | |
− | | If you have multiple user tables or models you may configure multiple
| + | |
− | | sources which represent each model / table. These sources may then
| + | |
− | | be assigned to any extra authentication guards you have defined.
| + | |
− | |
| + | |
− | | Supported: "database", "eloquent"
| + | |
− | |
| + | |
− | */
| + | |
− | | + | |
− | 'providers' => [
| + | |
− | 'users' => [
| + | |
− | 'driver' => 'eloquent',
| + | |
− | 'model' => App\Models\User::class,
| + | |
− | ],
| + | |
− | | + | |
− | // 'users' => [
| + | |
− | // 'driver' => 'database',
| + | |
− | // 'table' => 'users',
| + | |
− | // ],
| + | |
− | ],
| + | |
− | | + | |
− | /*
| + | |
− | |--------------------------------------------------------------------------
| + | |
− | | Resetting Passwords
| + | |
− | |--------------------------------------------------------------------------
| + | |
− | |
| + | |
− | | You may specify multiple password reset configurations if you have more
| + | |
− | | than one user table or model in the application and you want to have
| + | |
− | | separate password reset settings based on the specific user types.
| + | |
− | |
| + | |
− | | The expire time is the number of minutes that each reset token will be
| + | |
− | | considered valid. This security feature keeps tokens short-lived so
| + | |
− | | they have less time to be guessed. You may change this as needed.
| + | |
− | |
| + | |
− | */
| + | |
− | | + | |
− | 'passwords' => [
| + | |
− | 'users' => [
| + | |
− | 'provider' => 'users',
| + | |
− | 'table' => 'password_resets',
| + | |
− | 'expire' => 60,
| + | |
− | 'throttle' => 60,
| + | |
− | ],
| + | |
− | ],
| + | |
− | | + | |
− | /*
| + | |
− | |--------------------------------------------------------------------------
| + | |
− | | Password Confirmation Timeout
| + | |
− | |--------------------------------------------------------------------------
| + | |
− | |
| + | |
− | | Here you may define the amount of seconds before a password confirmation
| + | |
− | | times out and the user is prompted to re-enter their password via the
| + | |
− | | confirmation screen. By default, the timeout lasts for three hours.
| + | |
− | |
| + | |
− | */
| + | |
− | | + | |
− | 'password_timeout' => 10800,
| + | |
− | | + | |
− | ];
| + | |
− | | + | |
− | | + | |
− | </source>
| + | |
− | }}
| + | |
− | {{MRM_Puntos clave|Como podemos ver '''''la autentificación''''' en Laravel está configurada por dos elementos que podemos modificar: '''''Guards''''' y '''''Providers'''''. | + | |
− | {{MRM_Definicion|Title=Guards y Providers|
| + | |
− | *'''''Guards''''' definen cómo el sistema debe de almacenar y recuperar información sobre los usuarios autenticados 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 ...)
| + | |
− | }}
| + | |
− | }}
| + | |
− | | + | |
− | ====Autentificación con laravel====
| + | |
− | En este caso vamos a generar la autentificación más básica, de las que ofrece laravel que va a consistir en usuario y password
| + | |
− | ;Partimos de un proyecto instalado en laravel, si no, creamos uno nuevo | + | |
− | *Debemos tener instalado git, node y npm, si no lo tuviéramos instalado lo instalamos
| + | |
− | <source lang=bash>
| + | |
− | apt-get install git
| + | |
− | curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash
| + | |
− | </source>
| + | |
− | El comando nos instalará nodejs 16 y npm en la versión 8
| + | |
− | <source lang=bash>
| + | |
− | node -v
| + | |
− | v16.14.0
| + | |
− | npm -v
| + | |
− | 8.3.1
| + | |
− | ➜ ~
| + | |
− | </node>
| + | |
− | | + | |
− | *Creamos el proyecto nuevo
| + | |
− | <source lang=bash>
| + | |
− | laravel new auth
| + | |
− | </>
| + | |
− | ;Instalamos el paquete laravel/breeze que implementa la auth básica pero completa
| + | |
− | <source lang=bash>
| + | |
− | composer require laravel/breeze | + | |
− | </source>
| + | |
− | Ahora debemos publicar las rutas, controladores, vistas y otros recursos para la autentificación, para ello ejecutamos el siguiete comando
| + | |
− | | + | |
− | <source lang=bash>
| + | |
− | php artisan breeze:install
| + | |
− | </source>
| + | |
− | *Nos dará el siguiente mensaje
| + | |
− | <source lang=bash>
| + | |
− | Breeze scaffolding installed successfully.
| + | |
− | Please execute the "npm install && npm run dev" command to build your assets.
| + | |
− | </source>
| + | |
− | *Y hacemos lo que pide, ya que esta implementación usa taildwind como css y otros paquetes en el front. Ahora debemos instalar todos los paquetes del cliente, que se necesita para su ejecución.
| + | |
− | *Para este comentido se utiliza la herramienta '''''npm ''''' https://www.npmjs.com/ que es un gestor de paquetes de nodejs y lo vamos a usar en laravel para descargar paquetes relaciondos con el front
| + | |
− | <source lang=bash>
| + | |
− | npm install | + | |
| npm run dev | | npm run dev |
− | </source>
| + | *Las migraciones |
− | Puede ser que nos indique que instalemos una versión superíor, lo hacemos, como en mi caso
| + | Establecer los datos de conexión en el fichero .env |
| + | ejecutar las migracionesw |
| <source lang=bash> | | <source lang=bash> |
− | sudo npm install -g npm@8.5.1 | + | php artisan migrate |
| </source> | | </source> |
| + | ;Para usar |
| | | |
− | *Ahora creamos las tablas necesarias para la authentificaicón (user, password_resets y personal_access_token). Éstas ya vienen preparadas en migraciones con la aplicación inicial. | + | *Para establecer routas protegidas (solo accesibles si logueado) |
− | Para ello lo primero establecemos los parámetros de conexión en el fichero de configuración '''''.env'''''
| + | |
− | [[Archivo:auth_env.png|center]]
| + | |
− | *Ahora ejecutamos las migraciones para crear las tablas
| + | |
− | <source lang=bash>
| + | |
− | php artisan migrate
| + | |
− | </source>
| + | |
− | Tras ejecutarla, podemos ver cómo nos han creado estas tablas
| + | |
− | [[Archivo:auth_tablas.png|center]]
| + | |
| | | |
− | *Ahora ya podemos usar la autentificación, vemos cómo tenemos nuevas rutas, nuevos controladores y nuevas vistas.
| + | Route::get("xx", function (){ |
− | *Probamos cómo efectivamente funciona creando una ruta que nos retorne una vista y poniéndoe un midellware auth. Todo lo vamos a analizar más despacion, pero observemos su funcionamiento.
| + | return view("xxxxxx");})->middelware("auth"); |
− | *En web.php tenemos la ruta por defecto de la instalación
| + | |
| | | |
| + | *Si en una vista quiero si estoy logueado |
| <source lang=php> | | <source lang=php> |
− | Route::get('/', function () {
| + | @auth |
− | return view('welcome');
| + | <h2>Conectado como {{auth()->user()->name}}</h2> |
− | });
| + | <form action="{{route("logout")}}" method='post'> |
− | </source> | + | @csrf |
− | *Le ponemos la autentificaicón
| + | <x-button>Desconectar</x-button> |
− | <source lang=php> | + | </form> |
− | Route::get('/', function () {
| + | @endauth |
− | return view('welcome');
| + | @guest |
− | })->middleware("auth"); | + | <a href="{{route("login")}}"><x-button>Login</x-button></a> |
− | </source> | + | <a href="{{route("register")}}"><x-button>Registrarme</x-button></a> |
− | *Y Ahora al solicitar el recurso, nos pide que nos autentifiquemos, redirigiéndonos a la página de login
| + | |
− | [[Archivo:auth_login.png|center|500px]]
| + | |
| | | |
| + | @endguest |
| | | |
− |
| |
− | ====Autentificación por defecto de laravel: Laravel Beeze====
| |
− |
| |
− |
| |
− |
| |
− | *Esta situación es igual que la atenrior, con la diferencia que el css que se utiliza es tailwind. Esta manera es la que referencia en la versión 8 de laravel en su web, si bien, la anterior funciona igualmente
| |
− | *Para disponer de la authentificación usando el paquete '''''breeze''''', requerimos el paquete.
| |
− | *'''''Laravel Breeze''''' es una implementación mínima y simple de todas las funciones de autenticación de Laravel.
| |
− | *Incluye una serie de operaciones típicas como son:
| |
− | 1.-Inicio de sesión,
| |
− | 2.-Registro de ususario,
| |
− | 3.-Restablecimiento de contraseña,
| |
− | 4.-Verificación de correo electrónico y confirmación de contraseña.
| |
− | {{MRM_Actividad|title=Instalar Laravel Beeze|
| |
− | <source lang=bash>
| |
− | composer require laravel/breeze --dev
| |
− | </source>
| |
− | <source lang=bash>
| |
− | apt-get install npm
| |
− | npm install n -g
| |
− | source /root/.bash
| |
| </source> | | </source> |
| + | *Recordar las rutas creadas |
| + | routes/auth.php |
| + | *Para verlas |
| + | php artisan route:list |
| + | *Controladores creados |
| + | http/controllers/auth |
| | | |
− | <source lang=bash>
| + | ;Modificar la página a la que me redirige una vez logueado |
− | npm install
| + | Const HOME en Providers/RouteServiceProviders |
− | </source>
| + | |
− | <source lang=bash>
| + | |
− | npm run dev
| + | |
− | </source>
| + | |
| | | |
| | | |
| + | }}--> |
| | | |
| | | |
− | }}Para su instalación debemos hacer:
| |
| | | |
− | OPCIONES DE EXTENSIÓN
| |
− | Usamos la línea de comandos con artisan, creamos el módulo '''''auth''''' en nuestra aplicación
| |
− | <source lang=bash>
| |
− | ~ ➭ php artisan make:auth
| |
− | Authentication scaffolding generated successfully.
| |
− | ~ ➭
| |
− | </source>
| |
− | {{MRM_Pregunta|Title=Qué ha ocurrido|
| |
− | ;1.-Se ha creado 1 controlador (app/Http/Controller/HomeController.php)
| |
− | {{MRM_Actividad|Title=Otros controladores disponibles|
| |
− | Toda app dispone de 4 controladores para gestionar los usuarios
| |
− | app/Http/Controller/Auth
| |
− | [[Imagen:controller_auth.png|400px|center]]
| |
− | }}
| |
− | ;2.-Se ha añadido nuevas entradas en las rutas routes/web.app
| |
− | <source lang=php>
| |
− | //...
| |
− | Auth::routes();
| |
− | Route::get('/home', 'HomeController@index');
| |
− | //...
| |
− | </source>
| |
− | ;3.-Se han creado las siguientes vistas /resources/view/
| |
− | [[Imagen:laravel_auth2.png|400px|center]]
| |
− | }}
| |
− | {{MRM_Actividad|Title=Controladores disponibles para autentificar|
| |
− | ;HomeController
| |
− | *Este controlador se genera al activar el módulo '''''auth'''''.
| |
− | *Con él podremos gestionar las solicitudes después haber sido logueados.
| |
− | ;RegisterController
| |
− | Registro del usuarios
| |
− | ;LoginController
| |
− | Gestiona la autentificación.
| |
− | ;ForgotPasswordController
| |
− | Gestión de una password olvidada por parte de un usuario
| |
− | ;ResetPasswordController
| |
− | Lógica para controlar resetear una password
| |
− | }}
| |
− | {{MRM_Actividad|Title=Invocar a los formuarios|
| |
− | *Podemos invocar a los formularios desde nuestra vista
| |
− | <source lang=html5>
| |
− | <a class="btn href= {{ route('register') }}>REGISTRATE</a>
| |
− | <a class="btn href={{ route('login') }}>ACCEDER</a>
| |
− | </source>
| |
− | }}
| |
− | {{MRM_Actividad|Title=Establecer enlaces con logín|
| |
− | *Los '''''middeleware''''' son filtros que se pueden poner antes o después de acceder a un recurso establecido en '''''web.php'''''
| |
− | *De esta forma podemos establecer que para acceder a determinadas páginas o recursos hay que loguearse previamente
| |
− | *Por ejemplo tenemos varias páginas con restricciones de acceso, informes, alumnos y empresas serían recursos que necesitarían login para acceder
| |
− | <source lang=php>
| |
| | | |
− | Route::get('/about', function () {
| |
− | return view('about');
| |
− | });
| |
− | Route::get('/contacta', function () {
| |
− | return view('contacta');
| |
− | });
| |
| | | |
− | Route::get('/alumnos', function () {
| |
− | return view('alumnos');
| |
− | })->middleware('auth');
| |
− | Route::get('/informes', function () {
| |
− | return view('practicas');
| |
− | });
| |
− | Route::get('/empresas', function () {
| |
− | return view('empresas');
| |
− | })->middleware('auth');
| |
| | | |
| + | ===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. |
| + | *Sistemas de authentificación posibles con laravel: |
| + | #Autentificación básica con http |
| + | #Breeze |
| + | #Fortity |
| + | #Jetstream |
| + | #Sanctum |
| + | #Passport |
| + | <!-- |
| + | ====Autentificación básica con http==== |
| | | |
| | | |
| | | |
− | </source>
| + | ====Autentificación implementada en Laravel: Breeze==== |
− | }}
| + | *Este paquete aporta los siguientes elementos: |
− | | + | ;En el backend: |
− | | + | Vistas |
− | {{Tip|En muchos casos, activar la autentificación por defecto es suficiente, pero conviene conocer cómo modificar determinados comportamientos por defecto}}
| + | Rutas y controladores |
− | {{MRM_Actividad|Ttitle=Personalizando la autentificación|
| + | ;En el frontend |
− | #Página inicial una vez logueado.
| + | Tailwindcss/blade |
− | #Campos para validar al ususario.
| + | ;Acciones implementadas: |
− | #Protegiendo rutas.
| + | Registro |
− | }}
| + | Login |
− | | + | Logout |
− | ===Página inicial=== | + | Resestablecimiento de contraseña |
− | <br />
| + | Confirmación por email |
− | {{MRM_Puntos clave|Title=Página a redirigir una vez logueado|
| + | |
− | ;Atributo
| + | |
− | <source lang=php>
| + | |
− | protected redirectTo='/home';
| + | |
− | </source>
| + | |
− | De los controladores:
| + | |
− | ;LoginController.php
| + | |
− | ;RegisterController.php
| + | |
− | ;ResetPasswordController.php
| + | |
− | Se puede especificar también el método
| + | |
− | <source lang=php>
| + | |
− | protected function redirectTo()
| + | |
− | {
| + | |
− | return '/path';
| + | |
− | }
| + | |
− | </source>
| + | |
− | {{Tip|El método tiene preferencia sobre el atributo}}
| + | |
− | }}
| + | |
− | ===Protegiendo rutas===
| + | |
− | *Establecer páginas o rutas, que solo se sirven si se está logueado. | + | |
− | *Si tengo una ruta de una página
| + | |
− | <source lang=php>
| + | |
− | Route::get('/productos', 'ControladorProductos@get')
| + | |
− | </source>
| + | |
− | *Si la quiero proteger con autentificación:
| + | |
− | <source lang=php>
| + | |
− | Route::get('/productos', 'ControladorProductos@get')->middleware('auth');
| + | |
− | </source>
| + | |
− | | + | |
− | | + | |
− | | + | |
− | <br />
| + | |
− | | + | |
− | | + | |
− | | + | |
− | | + | |
− | | + | |
− | {{MRM_Puntos clave|Title=Migraciones para la autentificación|
| + | |
− | ;1.-Creamos la base de datos
| + | |
− | ;2.-Configuramos correctamente el fichero
| + | |
− | <source lang=bash>
| + | |
− | config/database.php
| + | |
− | </source>
| + | |
− | Valores de parámetros aportados en el fichero '''''.env'''''
| + | |
− | [[Imagen:usuariosLaravelMigraciones.png]]
| + | |
− | ;3.-Instalamos el módulo de migraciones
| + | |
− | <source lang=bash>
| + | |
− | php artisan migrate:install
| + | |
− | </source>
| + | |
− | *Nos habrá creado la tabla '''''migration''''' en la base de datos especificada
| + | |
− | Migration table created successfully. | + | |
− | ;4.- Ejecutamos la migración que viene por defecto
| + | |
− | <source lang=bash>
| + | |
− | php artisan migrate
| + | |
− | </source>
| + | |
− | Nos generará la siguiente salida indicando que ha creado dos tablas
| + | |
− | Migrating: 2014_10_12_000000_create_users_table | + | |
− | Migrated: 2014_10_12_000000_create_users_table
| + | |
− | Migrating: 2014_10_12_100000_create_password_resets_table
| + | |
− | Migrated: 2014_10_12_100000_create_password_resets_table
| + | |
− | }}
| + | |
− | {{Nota|
| + | |
− | #Si la primera vez que intentáis registrar un usuario no deja, cierra el servidor y vuélvelo a arrancar y prueba
| + | |
− | #Verifica el fichero de configuración de las conexiones
| + | |
− | #Busca en stackoverflow ...
| + | |
− | }}
| + | |
− | | + | |
− | | + | |
− | {{MRM_Puntos clave|Title=Campo de validación|
| + | |
− | *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á
| + | |
− | }
| + | |
− | <br />
| + | |
− | 2.-Ahora toca actualizar la plantilla html que se va a visualizar
| + | |
− | *Había estas etiquetas
| + | |
− | <source lang=html5>
| + | |
− | <div class="form-group row">
| + | |
− | <label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label>
| + | |
− | <div class="col-md-6">
| + | |
− | <input id="email" type="email" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="email" value="{{ old('email') }}" required autofocus>
| + | |
− | @if ($errors->has('email'))
| + | |
− | <span class="invalid-feedback" role="alert">
| + | |
− | <strong>{{ $errors->first('email') }}</strong>
| + | |
− | </span>
| + | |
− | @endif
| + | |
− | </div>
| + | |
− | </div>
| + | |
− | </source>
| + | |
− | Las sustituimos por una caja de texto
| + | |
− | | + | |
− | 3.-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
| + | |
− | <source lang=bash>
| + | |
− | php artisan make:auth and
| + | |
− | php artisan migrate
| + | |
− | </source>
| + | |
− | 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
| + | |
− | <source lang=php>
| + | |
− | $table->rememberToken()
| + | |
− | </source>
| + | |
− | *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');
| + | |
− | }
| + | |
| </div> | | </div> |
| + | --> |