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-card">
|
||||
<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>
|
||||
<input type="text" class="form-control" id="username" name="username"
|
||||
placeholder="Masukkan Usernamemu" style="font-size: 13px"required>
|
||||
<input type="text" class="form-control @error('username') is-invalid @enderror" id="username"
|
||||
name="username" value="{{ old('username') }}" placeholder="Masukkan Usernamemu"
|
||||
style="font-size: 13px" required>
|
||||
|
||||
@error('username')
|
||||
<div class="invalid-feedback">
|
||||
{{ $message }}
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="mb-2">
|
||||
<div class="mb-3">
|
||||
<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;"
|
||||
onclick="toggleDynamic('passBaru', 'iconPass')">
|
||||
<i class="bi bi-eye" style="font-size: 16px" id="iconPass"></i>
|
||||
</div>
|
||||
<div class="position-relative">
|
||||
|
||||
<input type="password" class="form-control @error('password') is-invalid @enderror"
|
||||
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>
|
||||
@error('password')
|
||||
<div class="invalid-feedback d-block">
|
||||
{{ $message }}
|
||||
</div>
|
||||
@enderror
|
||||
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-primary rounded-pill w-100 py-2 mt-2">Masuk</button>
|
||||
|
|
|
|||
Loading…
Reference in New Issue