feat: implement login logic and make login page dynamic

This commit is contained in:
2026-08-16 11:29:16 +03:30
parent 31cef139b4
commit a394aa79e0
3 changed files with 50 additions and 11 deletions
+21 -1
View File
@@ -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');
}
}
+13 -2
View File
@@ -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',
]
];
}
}
+16 -8
View File
@@ -16,25 +16,37 @@
<div class="login-area py-120">
<div class="container">
<div class="col-md-5 mx-auto">
@if ($errors->has('general'))
<span style="color: red">
{{ $errors->first('general') }}
</span>
@endif
<div class="login-form">
<div class="login-header">
<img src="assets/img/logo/logo-dark.png" alt>
<p>با حساب MyTrip خود وارد شوید</p>
</div>
<form action="#">
<form action="{{route('auth.login.post')}}" method="post">
@csrf
<div class="form-group">
<label>آدرس ایمیل</label>
<div class="form-group-icon">
<input type="email" class="form-control" placeholder="ایمیل خود را وارد کنید">
<input type="email" name="email" class="form-control" placeholder="ایمیل خود را وارد کنید" value="{{old('email')}}">
<i class="far fa-envelope"></i>
</div>
@error('email')
<span style="color: red">{{$message}}</span>
@enderror
</div>
<div class="form-group">
<label>رمز عبور</label>
<div class="form-group-icon">
<input type="password" class="form-control" placeholder="رمز عبور را وارد کنید">
<input type="password" name="password" class="form-control" placeholder="رمز عبور را وارد کنید">
<i class="far fa-lock"></i>
</div>
@error('password')
<span style="color: red">{{$message}}</span>
@enderror
</div>
<div class="d-flex justify-content-between mb-3">
<div class="form-check">
@@ -51,11 +63,7 @@
</form>
<div class="login-footer">
<div class="login-divider"><span>یا</span></div>
<div class="social-login">
<a href="#" class="btn-fb"><i class="fab fa-facebook"></i> ورود با فیسبوک</a>
<a href="#" class="btn-gl"><i class="fab fa-google"></i> ورود با گوگل</a>
</div>
<p>اکانت ندارید ؟ <a href="register.html">عضو شدن.</a></p>
<p>اکانت ندارید ؟ <a href="{{route('auth.register.index')}}">عضو شدن.</a></p>
</div>
</div>
</div>