TIF_NGANJUK_E41220418/app/Http/Controllers/admin/AuthController.php

71 lines
2.1 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash; // <--- WAJIB NAMBAH INI
use App\Models\User;
class AuthController extends Controller
{
// 1. Menampilkan Form Login
public function login()
{
return view('admin.login');
}
// 2. Memproses Login (POST)
public function authenticate(Request $request)
{
$request->validate([
'username' => ['required'],
'password' => ['required'],
]);
// 1. CEK USERNAME DULU
// Cari user berdasarkan username yang diinput
$user = User::where('username', $request->username)->first();
// Kalau user GAK KETEMU (Database kosong atau salah ketik)
if (!$user) {
return back()->withErrors([
'username' => 'Username tidak ditemukan.', // Error nempel di kolom username
])->onlyInput('username');
}
// 2. CEK PASSWORD
// Kalau user ketemu, kita cek passwordnya cocok gak sama yang di database
if (!Hash::check($request->password, $user->password)) {
return back()->withErrors([
'password' => 'Password salah, coba ingat-ingat lagi.', // Error nempel di kolom password
])->onlyInput('username');
}
// 3. KALAU LOLOS DUA-DUANYA -> LOGIN
Auth::login($user);
$request->session()->regenerate();
// Redirect sesuai role
$role = $user->role ?? 'admin';
if ($role === 'pemilik') {
return redirect()->intended(route('admin.beranda.pemilik'));
}
return redirect()->intended(route('admin.beranda'));
}
// 3. Logout
public function logout(Request $request)
{
Auth::logout(); // Hapus sesi login
$request->session()->invalidate(); // Matikan session
$request->session()->regenerateToken(); // Regenerasi token keamanan
// Redirect ke halaman login setelah logout
return redirect()->route('login');
}
}