69 lines
1.9 KiB
PHP
Executable File
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.');
|
|
}
|
|
}
|