馃攼 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