add logic in auth controller and login view for authentication
This commit is contained in:
parent
09eadb8a5a
commit
9de4993af6
|
|
@ -0,0 +1,70 @@
|
||||||
|
<?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');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -16,25 +16,43 @@
|
||||||
<div class="login-page">
|
<div class="login-page">
|
||||||
<div class="login-card">
|
<div class="login-card">
|
||||||
<img src="{{ asset('img/logo.png') }}" alt="Flo.do Logo" class="login-logo">
|
<img src="{{ asset('img/logo.png') }}" alt="Flo.do Logo" class="login-logo">
|
||||||
<form action="" method="POST">
|
<form action="{{ route('login.proses') }}" method="POST">
|
||||||
|
@csrf
|
||||||
|
|
||||||
<div class="mb-2">
|
<div class="mb-3">
|
||||||
<label for="username" class="form-label">Username</label>
|
<label for="username" class="form-label">Username</label>
|
||||||
<input type="text" class="form-control" id="username" name="username"
|
<input type="text" class="form-control @error('username') is-invalid @enderror" id="username"
|
||||||
placeholder="Masukkan Usernamemu" style="font-size: 13px"required>
|
name="username" value="{{ old('username') }}" placeholder="Masukkan Usernamemu"
|
||||||
|
style="font-size: 13px" required>
|
||||||
|
|
||||||
|
@error('username')
|
||||||
|
<div class="invalid-feedback">
|
||||||
|
{{ $message }}
|
||||||
|
</div>
|
||||||
|
@enderror
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-2">
|
<div class="mb-3">
|
||||||
<label class="form-label">Kata Sandi</label>
|
<label class="form-label">Kata Sandi</label>
|
||||||
<div class="form-group position-relative has-icon-right">
|
|
||||||
<input type="password" class="form-control"style="font-size: 13px" id="passBaru"
|
|
||||||
placeholder="**************">
|
|
||||||
|
|
||||||
<div class="form-control-icon" style="font-size: 13px; cursor: pointer;"
|
<div class="position-relative">
|
||||||
onclick="toggleDynamic('passBaru', 'iconPass')">
|
|
||||||
<i class="bi bi-eye" style="font-size: 16px" id="iconPass"></i>
|
<input type="password" class="form-control @error('password') is-invalid @enderror"
|
||||||
</div>
|
style="font-size: 13px; padding-right: 40px;" id="passBaru" name="password"
|
||||||
|
placeholder="**************" required>
|
||||||
|
|
||||||
|
<span class="position-absolute top-50 end-0 translate-middle-y me-3"
|
||||||
|
onclick="toggleDynamic('passBaru', 'iconPass')" style="cursor: pointer;">
|
||||||
|
<i class="bi bi-eye text-secondary" style="font-size: 16px" id="iconPass"></i>
|
||||||
|
</span>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@error('password')
|
||||||
|
<div class="invalid-feedback d-block">
|
||||||
|
{{ $message }}
|
||||||
|
</div>
|
||||||
|
@enderror
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button type="submit" class="btn btn-primary rounded-pill w-100 py-2 mt-2">Masuk</button>
|
<button type="submit" class="btn btn-primary rounded-pill w-100 py-2 mt-2">Masuk</button>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue