🔐 Sistema de login y registro en Laravel
Aprende a autenticar usuarios de forma segura
Laravel ofrece varias formas de manejar la autenticación de usuarios. Con Blade podemos crear formularios de registro y login, validarlos en el controlador y protegerlos con CSRF. En esta lección veremos cómo implementar un sistema completo y seguro.
⚙️ Formulario de registro en Blade (visual)
⚙️ Formulario de registro en Blade (código)
<form action="{{ route('register') }}" method="POST">
@csrf
<div class="mb-3">
<label for="name">Nombre completo:</label>
<input type="text" name="name" id="name" required>
</div>
<div class="mb-3">
<label for="email">Correo electrónico:</label>
<input type="email" name="email" id="email" required>
</div>
<div class="mb-3">
<label for="password">Contraseña:</label>
<input type="password" name="password" id="password" required>
</div>
<div class="mb-3">
<label for="password_confirmation">Confirmar contraseña:</label>
<input type="password" name="password_confirmation" id="password_confirmation" required>
</div>
<button type="submit">Registrarse</button>
</form>
⚙️ Formulario de login en Blade (visual)
⚙️ Formulario de login en Blade (código)
<form action="{{ route('login') }}" method="POST">
@csrf
<div class="mb-3">
<label for="email">Correo electrónico:</label>
<input type="email" name="email" id="email" required>
</div>
<div class="mb-3">
<label for="password">Contraseña:</label>
<input type="password" name="password" id="password" required>
</div>
<button type="submit">Iniciar sesión</button>
</form>
🧠 Validación en el controlador
public function register(Request $request)
{
$validated = $request->validate([
'name' => 'required|string|max:255',
'email' => 'required|email|unique:users,email',
'password' => 'required|string|min:8|confirmed'
]);
$user = User::create([
'name' => $validated['name'],
'email' => $validated['email'],
'password' => Hash::make($validated['password'])
]);
Auth::login($user);
return redirect()->route('dashboard')
->with('success', 'Registro exitoso, bienvenido!');
}
public function login(Request $request)
{
$credentials = $request->validate([
'email' => 'required|email',
'password' => 'required|string'
]);
if (Auth::attempt($credentials)) {
$request->session()->regenerate();
return redirect()->route('dashboard');
}
return back()->withErrors([
'email' => 'Las credenciales no coinciden.',
])->onlyInput('email');
}
✅ Consejo: Siempre hashear contraseñas con
Hash::make() y proteger formularios con CSRF.
📚 En resumen:
- Usa
@csrfen todos los formularios de POST. - Valida siempre los datos en el controlador.
- Hashea contraseñas antes de guardarlas.
- Registra y autentica usuarios usando el modelo
UseryAuth. - Recuerda regenerar sesión tras login por seguridad.
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias