Files
lash_vanshy/app/Http/Controllers/Admin/AuthController.php

69 lines
1.9 KiB
PHP
Executable File

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests\LoginRequest;
use App\Models\AdminUser;
use Illuminate\Http\RedirectResponse;
use Illuminate\Support\Facades\Auth;
class AuthController extends Controller
{
/**
* Mostrar formulario de login
*/
public function showLogin(): \Illuminate\Contracts\View\View|RedirectResponse
{
if (Auth::guard('admin')->check()) {
return redirect()->route('admin.dashboard');
}
return view('admin.auth.login');
}
/**
* Procesar login
*/
public function login(LoginRequest $request): RedirectResponse
{
$credentials = $request->only('email', 'password');
// Buscar usuario por email
$adminUser = AdminUser::where('email', $credentials['email'])->first();
if (! $adminUser) {
return back()->withErrors([
'email' => 'Las credenciales no son válidas.',
])->withInput($request->except('password'));
}
// Verificar password
if (! $adminUser->validatePassword($credentials['password'])) {
return back()->withErrors([
'email' => 'Las credenciales no son válidas.',
])->withInput($request->except('password'));
}
// Login manual
Auth::guard('admin')->login($adminUser);
$request->session()->regenerate();
return redirect()->intended(route('admin.dashboard'))->with('success', 'Bienvenido al panel de administración.');
}
/**
* Cerrar sesión
*/
public function logout(): RedirectResponse
{
Auth::guard('admin')->logout();
request()->session()->invalidate();
request()->session()->regenerateToken();
return redirect()->route('admin.login')->with('success', 'Sesión cerrada correctamente.');
}
}