Te explico cómo configurar el sistema de login en Laravel paso a paso

 https://www.youtube.com/watch?v=l6rlBIhjEs0

Te explico cómo configurar el sistema de login en Laravel paso a paso:

1. Instalación y configuración inicial

Primero, asegúrate de tener Laravel instalado y configurado:

bash
composer create-project laravel/laravel mi-proyecto
cd mi-proyecto

2. Configurar la base de datos

En el archivo .env, configura tu base de datos:

env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=nombre_base_datos
DB_USERNAME=usuario
DB_PASSWORD=contraseña

3. Instalar el paquete de autenticación

Laravel incluye un scaffolding para autenticación:

bash
composer require laravel/ui
php artisan ui bootstrap --auth
npm install && npm run build

4. Migraciones

Ejecuta las migraciones para crear las tablas necesarias:

bash
php artisan migrate

5. Modelo User

El modelo User ya viene incluido. Puedes personalizarlo si necesitas:

php
<?php
// app/Models/User.php

namespace App\Models;

use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;

class User extends Authenticatable
{
    use Notifiable;

    protected $fillable = [
        'name', 'email', 'password',
    ];

    protected $hidden = [
        'password', 'remember_token',
    ];
}

6. Controladores de Autenticación

Los controladores ya están generados en app/Http/Controllers/Auth/:

  • LoginController.php

  • RegisterController.php

  • ForgotPasswordController.php

  • ResetPasswordController.php

7. Rutas

Las rutas de autenticación están en routes/web.php:

php
Auth::routes();

// Rutas protegidas
Route::middleware(['auth'])->group(function () {
    Route::get('/dashboard', function () {
        return view('dashboard');
    });
});

8. Vistas

Las vistas se encuentran en resources/views/auth/:

  • login.blade.php - Formulario de login

  • register.blade.php - Formulario de registro

  • etc.

9. Personalizar la redirección

En app/Http/Controllers/Auth/LoginController.php:

php
protected $redirectTo = '/dashboard';

public function __construct()
{
    $this->middleware('guest')->except('logout');
    $this->middleware('auth')->only('logout');
}

10. Middleware de autenticación

Protege tus rutas:

php
Route::get('/profile', function () {
    // Solo usuarios autenticados
})->middleware('auth');

11. Verificar autenticación en controladores

php
public function index()
{
    if (auth()->check()) {
        // Usuario autenticado
        $user = auth()->user();
    }
    
    // O usando el helper
    $user = Auth::user();
}

12. Personalizar campos de login

Para usar username en lugar de email, modifica LoginController.php:

php
public function username()
{
    return 'username'; // Cambia 'email' por 'username'
}

13. Validaciones personalizadas

En app/Http/Controllers/Auth/RegisterController.php:

php
protected function validator(array $data)
{
    return Validator::make($data, [
        'name' => ['required', 'string', 'max:255'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password' => ['required', 'string', 'min:8', 'confirmed'],
        // Agrega más validaciones aquí
    ]);
}

14. Ejemplo de uso básico

php
// Login manual
if (Auth::attempt(['email' => $email, 'password' => $password])) {
    // Autenticación exitosa
    return redirect()->intended('dashboard');
}

// Cerrar sesión
Auth::logout();

15. Comandos útiles

bash
# Crear migraciones
php artisan make:migration create_users_table

# Ejecutar migraciones
php artisan migrate

# Crear seeders
php artisan make:seeder UsersTableSeeder

Configuración adicional importante

Habilitar registro (opcional)

Si quieres deshabilitar el registro, modifica las rutas:

php
// En routes/web.php
Auth::routes(['register' => false]);

Configuración de session

Revisa config/session.php para configurar el manejo de sesiones.

¡Con estos pasos tendrás un sistema de login funcional en Laravel! ¿Necesitas ayuda con alguna parte específica?

Comentarios

Entradas más populares de este blog

Cómo usar php artisan ui:auth en Laravel

Tutorial para instalar y usar Laravel Assets