From a394aa79e0b0b882baf357cb1f133140f401de46 Mon Sep 17 00:00:00 2001 From: mina-esn Date: Sun, 16 Aug 2026 11:29:16 +0330 Subject: [PATCH] feat: implement login logic and make login page dynamic --- app/Http/Controllers/Auth/LoginController.php | 22 ++++++++++++++++- app/Http/Requests/Auth/LoginPostRequest.php | 15 ++++++++++-- resources/views/auth/login.blade.php | 24 ++++++++++++------- 3 files changed, 50 insertions(+), 11 deletions(-) diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php index 7347c67..8d9b886 100644 --- a/app/Http/Controllers/Auth/LoginController.php +++ b/app/Http/Controllers/Auth/LoginController.php @@ -3,7 +3,11 @@ namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; +use App\Http\Requests\Auth\LoginPostRequest; +use App\Models\User; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\Hash; class LoginController extends Controller { @@ -15,8 +19,24 @@ class LoginController extends Controller return view('auth.login' , compact('title' , 'withOutHeader' , 'withOutFooter')); } - public function post() + public function post(LoginPostRequest $request) { + $user = User::where('email' , '=' , $request->input('email')) + ->first(); + + if (!$user) { + return back()->withErrors([ + 'general' => 'اطلاعات کاربری یافت نشد.' + ]); + } + if (!Hash::check($request->input('password'), $user->password)){ + return back()->withErrors([ + 'general' => 'اطلاعات کاربری اشتباه است.' + ]); + } + Auth::login($user); + + return redirect()->route('index'); } } diff --git a/app/Http/Requests/Auth/LoginPostRequest.php b/app/Http/Requests/Auth/LoginPostRequest.php index a79bd85..1ce5377 100644 --- a/app/Http/Requests/Auth/LoginPostRequest.php +++ b/app/Http/Requests/Auth/LoginPostRequest.php @@ -12,7 +12,7 @@ class LoginPostRequest extends FormRequest */ public function authorize(): bool { - return false; + return true; } /** @@ -23,7 +23,18 @@ class LoginPostRequest extends FormRequest public function rules(): array { return [ - // + 'email' => [ + 'required', + 'email', + 'max:150', + + ], + 'password' => [ + 'required', + 'min:8', + 'max:255', + 'alpha_num', + ] ]; } } diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php index 016644b..2eb34e5 100644 --- a/resources/views/auth/login.blade.php +++ b/resources/views/auth/login.blade.php @@ -16,25 +16,37 @@
+ @if ($errors->has('general')) + + {{ $errors->first('general') }} + + @endif