Header Ads Widget

Ticker

6/recent/ticker-posts

Tutorial de autenticación de Laravel 7/6: ejemplo de inicio de sesión / registro / restablecimiento de contraseña

 Este tutorial lo ayudará a implementar la autenticación en su proyecto de Laravel 7 con example.

Usaremos el paquete de interfaz de usuario de Laravel en Laravel 7.

En este tutorial, veremos cómo agregar autenticación en Laravel 7 con el ejemplo de inicio de sesión, registro, cierre de sesión y restablecimiento de contraseña.

En el tutorial anterior , presentamos Laravel y vimos las nuevas características de la última versión de Laravel 7.

Bootstrapping de un proyecto Laravel 7/6

Primero, asegúrese de haber seguido el tutorial anterior y de haber iniciado su servidor de desarrollo en la http://localhost:8000dirección.

Agregar autenticación a su aplicación Laravel 7/6

Laravel 6+ ha movido el andamio de autenticación a un paquete de Laravel / UI separado que debe instalar en su proyecto de Laravel 7 usando el siguiente comando desde una nueva terminal:

$ cd crmapp
$ composer require laravel/ui

Esta es la salida del comando:

Using version ^1.0 for laravel/ui
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Installing laravel/ui (v1.0.1): Downloading (100%)
Writing lock file
[...]

A continuación, puede ejecutar el siguiente comando:

$ php artisan ui vue --auth

Esta es la salida del comando:

Vue scaffolding installed successfully.
Please run "npm install && npm run dev" to compile your fresh scaffolding.
Authentication scaffolding generated successfully.

Debe ejecutar el comando anterior en los nuevos proyectos de Laravel 6+ para generar un diseño completo con vistas y rutas de registro, inicio de sesión y restablecimiento de contraseña para agregar autenticación. Esto también generará un HomeControllerpara manejar las solicitudes después de iniciar sesión.

El php artisan ui vue --authcomando creará las vistas necesarias para la autenticación y las colocará en la resources/views/authcarpeta.

El uicomando también generará una resources/views/layoutscarpeta que contiene un diseño base para su aplicación que hace uso del marco CSS Bootstrap.

Ahora que ha agregado las rutas y vistas para los controladores de autenticación existentes, los usuarios pueden registrarse y autenticarse.

Controladores de autenticación Laravel 7/6

Los controladores de autenticación en Laravel 7 contienen la lógica requerida para autenticar usuarios y crear nuevos usuarios en la base de datos, por lo que no necesita agregar nada más para habilitar la autenticación en su aplicación, excepto si desea personalizar la apariencia o el comportamiento que vamos a te veo despues.

En su navegador web, diríjase a la dirección http: // localhost: 8000 / register , debería ver la siguiente interfaz:

Laravel 7/6 Registrar UI

De la misma manera, puede ver la interfaz de usuario de inicio de sesión visitando http: // localhost: 8000 / URL de inicio de sesión :

Ejemplo de inicio de sesión de Laravel 7/6

También puede acceder a la página de restablecimiento de contraseña desde http: // localhost: 8000 / password / reset URL:

Ejemplo de restablecimiento de contraseña de Laravel 7/6

A continuación, necesitamos diseñar las vistas de autenticación en nuestro ejemplo de Laravel 7.

Las vistas no tienen estilo. Puede cambiar eso instalando y construyendo las dependencias de frontend usando los siguientes comandos desde la raíz de su proyecto:

$ npm install
$ npm run dev

Si tiene el Error de rechazo no controlado: EACCES: error de permiso denegado , simplemente debe usar sudo antes de su comando en los sistemas Ubuntu o macOS:

$ sudo npm install 
$ sudo npm run dev

Ahora tenemos una interfaz de usuario más atractiva. Esta es una captura de pantalla de la página de inicio de sesión:

Laravel 7/6 y la interfaz de usuario de inicio de sesión de Bootstrap

Si se registra para obtener una cuenta, se iniciará sesión y se le redirigirá a la /homeruta que está asignada a una HomeControllerdonde también puede invocar el método de cierre de sesión:

Rutas de autenticación Laravel 7/6

A continuación, necesitamos agregar las rutas de autenticación en nuestro proyecto Laravel 7.

Abra routes/web.php, debería encontrar el siguiente código:

<?php

Route::get('/', function () {
    return view('welcome');
});

Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');

El Auth::routes()método incluye las rutas para iniciar sesión, registrarse, cerrar sesión y restablecer la contraseña. Este método, junto con la ruta de inicio, se agregó cuando se agregó el andamio de autenticación en la sección anterior.

Laravel LoginControllerRegisterControllerResetPasswordController.

Ahora, necesitamos agregar los controladores de autenticación en nuestra aplicación Laravel 7.

Laravel ofrece las LoginControllerRegisterControllerResetPasswordControllerlos controladores de la caja y también se puede proporcionar a sus implementaciones si usted tiene requisitos especiales.

Los controladores de autenticación se encuentran en la app/Http/Controllers/Authcarpeta.

Cómo proteger rutas en su aplicación Laravel 7/6

A continuación, debemos proteger las rutas de nuestra aplicación Laravel 7.

En una aplicación web, agrega autenticación para proteger principalmente algunas páginas o rutas para el acceso no autorizado.

En Laravel, puedes proteger una ruta usando un middelware .

Laravel tiene un authmiddleware incorporado , que existe en formato Illuminate\Auth\Middleware\AuthenticateTambién está registrado en el kernel HTTP de su aplicación, simplemente puede agregarlo a la ruta deseada para evitar que usuarios no autenticados accedan a él.

Veamos cómo se protege la página de inicio para que podamos proteger otras páginas de la misma manera:

Abra el app/Http/Controllers/HomeController.phparchivo. Tiene el siguiente código:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HomeController extends Controller
{

    public function __construct()
    {
        $this->middleware('auth');
    }
    public function index()
    {
        return view('home');
    }
}

En el constructor (el __construct()método) del controlador, puede ver una llamada al middleware()método con el authmiddleware.

El middleware()método se puede llamar desde el controlador o desde la definición de ruta. Así que eliminemos la llamada del controlador. A continuación, abra el routes/web.phparchivo y actualice la definición de la ruta de origen de la siguiente manera:

Route::get('/home', 'HomeController@index')->name('home')->middleware('auth');

Conclusión

En este tutorial, hemos agregado autenticación a nuestra aplicación CRM construida con Laravel 7/6.

Agregar autenticación en Laravel 7 es muy sencillo, como ha visto, ya que el marco proporciona un sistema de autenticación completo con registro, inicio de sesión, cierre de sesión y restablecimiento de contraseña listo para usar que puede ser suficiente en muchos casos. Pero si desea manejar requisitos especiales, también puede proporcionar sus controladores de autenticación personalizados, pero no necesita implementar las funcionalidades básicas desde cero, puede usar los diversos servicios de autenticación disponibles desde la Authfachada.

Si ha usado Laravel antes de Laravel 7, encontrará algunos cambios en Laravel 6. Por ejemplo, las rutas y vistas de autenticación ahora son parte del laravel/uipaquete separado que necesita instalar en su proyecto usando Composer antes de poder llamar al php artisan ui vue --authcomando que reemplazó al php artisan make:authcomando artesanal de Laravel 5 ' .

Publicar un comentario

0 Comentarios