133 lines
4.1 KiB
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('/');
|
|
}
|
|
}
|