trangshopeeaffiliate/app/Http/Controllers/Web/Auth/LoginController.php
2026-07-11 22:56:22 +07:00

85 lines
2.3 KiB
PHP

<?php
namespace App\Http\Controllers\Web\Auth;
use App\Http\Controllers\Controller;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
class LoginController extends Controller
{
/**
* Show the login form, or registration form if no users exist.
*/
public function showLoginForm()
{
if (Auth::check()) {
return redirect()->route('dashboard');
}
// If database is empty, allow creating the first admin
$hasUsers = User::exists();
return view('auth.login', compact('hasUsers'));
}
/**
* Handle authentication attempt.
*/
public function login(Request $request)
{
$request->validate([
'email' => 'required|string',
'password' => 'required|string',
]);
if (Auth::attempt($request->only('email', 'password'), $request->filled('remember'))) {
$request->session()->regenerate();
return redirect()->intended(route('dashboard'));
}
return back()->withErrors([
'email' => 'Thông tin đăng nhập không chính xác.',
])->onlyInput('email');
}
/**
* Handle first-time registration of the administrator.
*/
public function registerAdmin(Request $request)
{
if (User::exists()) {
return redirect()->route('login')->withErrors(['register' => 'Tài khoản quản trị đã tồn tại.']);
}
$request->validate([
'name' => 'required|string|max:255',
'email' => 'required|string|max:255|unique:users,email',
'password' => 'required|string|min:8|confirmed',
]);
$user = User::create([
'name' => $request->name,
'email' => $request->email,
'password' => Hash::make($request->password),
]);
Auth::login($user);
return redirect()->route('dashboard')->with('success', 'Đăng ký tài khoản quản trị thành công!');
}
/**
* Log the user out.
*/
public function logout(Request $request)
{
Auth::logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
return redirect()->route('login');
}
}