feat: complete login authentication

This commit is contained in:
2026-08-16 11:33:23 +03:30
parent ede831c121
commit 39302365bf
4 changed files with 311 additions and 51 deletions
@@ -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');
}
}
@@ -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');
}
}
@@ -0,0 +1,44 @@
<?php
namespace App\Http\Requests\Auth;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Foundation\Http\FormRequest;
class LoginPostRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, ValidationRule|array<mixed>|string>
*/
public function rules(): array
{
return [
'email' => [
'required',
'email',
'min:10',
'max:150',
],
'password' => [
'required',
'string',
'min:8',
'alpha_num',
],
];
}
}