MIF_E31210173/app/Http/Controllers/AuthController.php

133 lines
4.1 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
class AuthController extends Controller
{
public function index()
{
return view('auth.index', [
'title' => 'Login',
]);
}
// public function authenticate(Request $request)
// {
// $customMessages = [
// 'required' => 'Kolom :attribute wajib diisi.',
// ];
// $credentials = $request->validate([
// 'username' => 'required',
// 'password' => 'required'
// ], $customMessages);
// if (Auth::attempt($credentials)) {
// $request->session()->regenerate();
// return redirect()->intended('/dashboard');
// }
// return back()->with('loginError', 'Login Failed');
// }
// public function authenticate(Request $request)
// {
// $customMessages = [
// 'required' => 'Kolom :attribute wajib diisi.',
// ];
// // Validasi input
// $request->validate([
// 'username' => 'required',
// 'password' => 'required'
// ], $customMessages);
// // Ambil kredensial pengguna dari permintaan
// $username = $request->input('username');
// $password = $request->input('password');
// // Cari pengguna berdasarkan username
// $user = User::where('username', $username)->first();
// // Verifikasi kata sandi pengguna
// if ($user) {
// // Jika pengguna ditemukan, tetapi kata sandi salah
// if ($password !== $user->password) {
// return back()->with('loginError', 'Password salah untuk username ' . $username);
// }
// // Jika verifikasi berhasil, autentikasi pengguna
// Auth::login($user);
// // Regenerasi session
// $request->session()->regenerate();
// // Redirect ke halaman yang dimaksud
// return redirect()->intended('/dashboard');
// }
// // Jika pengguna tidak ditemukan
// return back()->with('loginError', 'Username tidak ditemukan');
// }
public function authenticate(Request $request)
{
$customMessages = [
'required' => 'Kolom :attribute wajib diisi.',
];
// Validasi input
$request->validate([
'username' => 'required',
'password' => 'required'
], $customMessages);
// Ambil kredensial pengguna dari permintaan
$username = $request->input('username');
$password = $request->input('password');
// Cari pengguna berdasarkan username
$user = User::where('username', $username)->first();
// Verifikasi kata sandi pengguna
if ($user) {
// Jika kata sandi cocok
if ($password === $user->password) {
// Jika verifikasi berhasil, autentikasi pengguna
Auth::login($user);
// Regenerasi session
$request->session()->regenerate();
// Redirect ke halaman yang dimaksud
return redirect()->intended('/dashboard');
} else {
// Simpan username dalam session untuk digunakan kembali jika autentikasi gagal
session(['username' => $username]);
// Jika kata sandi tidak cocok, kembalikan ke halaman login dengan pesan kesalahan
return back()->with('loginError', 'Password salah. untuk username ' . $username . ' Silakan coba lagi.');
}
} else {
// Jika pengguna tidak ditemukan, hapus session username
$request->session()->forget('username');
// Jika pengguna tidak ditemukan
return back()->with('loginError', 'Username tidak ditemukan');
}
}
public function logout(Request $request)
{
Auth::logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
return redirect('/');
}
}