From 39302365bfc37bc17420c136636647b34499af86 Mon Sep 17 00:00:00 2001 From: Windows Store Date: Sun, 16 Aug 2026 11:33:23 +0330 Subject: [PATCH] feat: complete login authentication --- app/Http/Controllers/Auth/LoginController.php | 23 ++ .../Controllers/Auth/LogoutController.php | 8 + app/Http/Requests/Auth/LoginPostRequest.php | 44 +++ resources/views/auth/login.blade.php | 287 ++++++++++++++---- 4 files changed, 311 insertions(+), 51 deletions(-) create mode 100644 app/Http/Requests/Auth/LoginPostRequest.php diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php index 8ba9eaa..069b9da 100644 --- a/app/Http/Controllers/Auth/LoginController.php +++ b/app/Http/Controllers/Auth/LoginController.php @@ -3,7 +3,10 @@ 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; class LoginController extends Controller { @@ -14,4 +17,24 @@ class LoginController extends Controller $withoutFooter = true; return view('auth.login' , compact('withoutFooter' , 'withoutHeader')); } + + public function post(LoginPostRequest $request) + { + $input = $request->validated(); + $user = User::query() + ->where('email' , $input['email']) + ->first(); + if (!$user){ + return back()->withErrors([ + 'general' => 'اطلاعات یافت نشد' + ]); + } + if (!\Hash::check($input['password'] , $user->password)){ + return back()->withErrors([ + 'general' => 'اطلاعات یافت نشد' + ]); + } + Auth::login($user); + return redirect()->route('index'); + } } diff --git a/app/Http/Controllers/Auth/LogoutController.php b/app/Http/Controllers/Auth/LogoutController.php index 25f566a..597adda 100644 --- a/app/Http/Controllers/Auth/LogoutController.php +++ b/app/Http/Controllers/Auth/LogoutController.php @@ -4,8 +4,16 @@ namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Auth; class LogoutController extends Controller { // + public function index() + { + session()->regenerate(); + + Auth::logout(); + return redirect()->route('index'); + } } diff --git a/app/Http/Requests/Auth/LoginPostRequest.php b/app/Http/Requests/Auth/LoginPostRequest.php new file mode 100644 index 0000000..d41844e --- /dev/null +++ b/app/Http/Requests/Auth/LoginPostRequest.php @@ -0,0 +1,44 @@ +|string> + */ + public function rules(): array + { + return [ + 'email' => [ + 'required', + 'email', + 'min:10', + 'max:150', + + ], + + 'password' => [ + 'required', + 'string', + 'min:8', + 'alpha_num', + + + ], + ]; + } +} diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php index 4de3f0f..ea7e66f 100644 --- a/resources/views/auth/login.blade.php +++ b/resources/views/auth/login.blade.php @@ -1,61 +1,246 @@ @extends('layouts.app') -@section('content') - -
-
-
-