feat(auth): update login and register flow

This commit is contained in:
2026-08-17 08:10:48 +03:30
parent 95cc970b07
commit 528423d56b
5 changed files with 73 additions and 241 deletions
@@ -29,11 +29,13 @@ class LoginController extends Controller
'general' => 'اطلاعات یافت نشد'
]);
}
if (!\Hash::check($input['password'] , $user->password)){
return back()->withErrors([
'general' => 'اطلاعات یافت نشد'
]);
}
Auth::login($user);
return redirect()->route('index');
}
+1 -1
View File
@@ -34,7 +34,7 @@ class LoginPostRequest extends FormRequest
'password' => [
'required',
'string',
'min:8',
'min:2',
'alpha_num',
+12 -4
View File
@@ -66,7 +66,8 @@ class RegisterPostRequest extends FormRequest
'string',
'min:5',
'max:100',
'alpha_num'
'alpha_num',
'unique:users,user_name'
],
'national_code' => [
'required',
@@ -84,19 +85,26 @@ class RegisterPostRequest extends FormRequest
'gender' => [
'required',
'int',
'in:0,1,2'
'in:0,1,'
],
'marital_status' => [
'required',
'int',
'in:0,1'
'in:0,1,2'
],
'user_province' => [
'nullable'
],
'user_city' => [
'nullable'
]
],
'image' => [
'nullable',
'file',
'mimes:jpg,jpeg,png,webp',
'max:800',
],
];
}
}
+53 -231
View File
@@ -1,246 +1,68 @@
@extends('layouts.app')
@section('content')
<main class="main">
<div class="site-breadcrumb" style="background: url(assets/img/breadcrumb/02.jpg)">
<div class="container">
<h2 class="breadcrumb-title">داشبورد</h2>
<ul class="breadcrumb-menu">
<li><a href="index.html">صفحه اصلی</a></li>
<li class="active">داشبورد</li>
</ul>
</div>
<div class="container">
<h2 class="breadcrumb-title">ورود</h2>
<ul class="breadcrumb-menu">
<li><a href="">صفحه اصلی</a></li>
<li class="active">ورود</li>
</ul>
</div>
<div class="user-profile py-120">
<div class="container">
<div class="row">
<div class="col-lg-3">
<div class="user-profile-sidebar">
<div class="user-profile-sidebar-top">
<div class="user-profile-img">
<img src="assets/img/account/user.jpg" alt>
<button type="button" class="profile-img-btn"><i class="far fa-camera"></i></button>
<input type="file" class="profile-img-file">
</div>
<h4>آنتونی جانسون</h4>
<p><a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3e5451504d51507e5b465f534e525b105d5153">[ایمیل محافظت شده است]</a></p>
</div>
<ul class="user-profile-sidebar-list">
<li><a class="active" href="dashboard.html"><i class="far fa-gauge-high"></i> داشبورد</a></li>
<li><a href="profile.html"><i class="far fa-user"></i> پروفایل من</a></li>
<li><a href="profile-booking.html"><i class="far fa-shopping-bag"></i> رزرو های من</a></li>
<li><a href="profile-booking-history.html"><i class="far fa-clipboard-list"></i> تاریخچه رزروها</a></li>
<li><a href="profile-listing.html"><i class="far fa-globe"></i> لیست من</a></li>
<li class="profile-menu">
<a href="#profile-menu" data-bs-toggle="collapse" aria-expanded="false" aria-controls="profile-menu">
<i class="far fa-plus-circle"></i> افزودن لیست <i class="far fa-angle-down profile-menu-angle"></i>
</a>
<div class="collapse" id="profile-menu">
<ul class="profile-menu-list">
<li><a href="flight-add.html">اضافه کردن پرواز</a></li>
<li><a href="hotel-add.html">اضافه کردن هتل</a></li>
<li><a href="hotel-room-add.html">اضافه کردن اتاق</a></li>
<li><a href="activity-add.html">افزودن فعالیت</a></li>
<li><a href="car-add.html">اضافه کردن ماشین</a></li>
<li><a href="cruise-add.html">اضافه کردن کروز</a></li>
<li><a href="tour-add.html">اضافه کردن تور </a></li>
</ul>
</div>
</li>
<li><a href="profile-wishlist.html"><i class="far fa-heart"></i> علاقه مندی های من</a></li>
<li><a href="profile-message.html"><i class="far fa-envelope"></i> پیام ها <span class="badge">02</span></a></li>
<li><a href="profile-wallet.html"><i class="far fa-wallet"></i> کیف پول من</a></li>
<li><a href="profile-notification.html"><i class="far fa-bell"></i> اطلاعیه <span class="badge">05</span></a></li>
<li><a href="profile-setting.html"><i class="far fa-cog"></i> تنظیمات</a></li>
<li><a href="#"><i class="far fa-sign-out"></i> خروج</a></li>
</ul>
</div>
<div class="login-area py-120">
<div class="container">
<div class="col-md-5 mx-auto">
<div class="login-form">
<div class="login-header">
<a href="{{route('index')}}">
<img src="{{asset('assets/img/logo/logo-dark.png')}}" alt>
</a>
<p>با حساب MyTrip خود وارد شوید</p>
</div>
<div class="col-lg-9">
<div class="user-profile-wrapper">
<div class="row">
<div class="col-md-6 col-lg-4">
<div class="dashboard-widget dashboard-widget-color-1">
<div class="dashboard-widget-info">
<h1>120</h1>
<span>تمام رزرو ها</span>
</div>
<div class="dashboard-widget-icon">
<i class="fal fa-shopping-bag"></i>
</div>
</div>
</div>
<div class="col-md-6 col-lg-4">
<div class="dashboard-widget dashboard-widget-color-2">
<div class="dashboard-widget-info">
<h1>26</h1>
<span>رزرو های حاضر</span>
</div>
<div class="dashboard-widget-icon">
<i class="fal fa-loader"></i>
</div>
</div>
</div>
<div class="col-md-6 col-lg-4">
<div class="dashboard-widget dashboard-widget-color-3">
<div class="dashboard-widget-info">
<h1>60000 تومان</h1>
<span>شما دریافت کردید</span>
</div>
<div class="dashboard-widget-icon">
<i class="fal fa-sack-dollar"></i>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-8">
<div class="user-profile-card">
<h4 class="user-profile-card-title">نمودار فروش</h4>
<div class="row">
<div class="col-lg-12">
<div id="chart"></div>
</div>
</div>
</div>
</div>
<div class="col-lg-4">
<div class="user-profile-card">
<h4 class="user-profile-card-title">اطلاعیه</h4>
<div class="user-notification">
<div class="user-notification-item">
<a href="#">
<div class="user-notification-icon">
<i class="far fa-home"></i>
</div>
<div class="user-notification-info">
<p>رزرو شما <b>#123456</b> هتل رولتاک تایید شد!</p>
<span>همین الان</span>
</div>
</a>
</div>
<div class="user-notification-item">
<a href="#">
<div class="user-notification-icon">
<i class="far fa-envelope"></i>
</div>
<div class="user-notification-info">
<p>رزرو شما <b>#123456</b> هتل رولتاک تایید شد!</p>
<span>15 دقیقه قبل</span>
</div>
</a>
</div>
<div class="user-notification-item">
<a href="#">
<div class="user-notification-icon">
<i class="far fa-heart"></i>
</div>
<div class="user-notification-info">
<p>رزرو شما <b>#123456</b> هتل رولتاک تایید شد!</p>
<span>15 روز پیش</span>
</div>
</a>
</div>
<div class="user-notification-item">
<a href="#">
<div class="user-notification-icon">
<i class="far fa-comment"></i>
</div>
<div class="user-notification-info">
<p>رزرو شما <b>#123456</b> هتل رولتاک تایید شد!</p>
<span>2 ماه پیش</span>
</div>
</a>
</div>
</div>
</div>
</div>
<div class="col-lg-12">
<div class="user-profile-card profile-booking">
<h4 class="user-profile-card-title">رزرو اخیر</h4>
<div class="table-responsive">
<table class="table text-nowrap">
<thead>
<tr>
<th>نه</th>
<th>شناسه رزرو</th>
<th>نوع</th>
<th>تاریخ</th>
<th>قیمت</th>
<th>وضعیت</th>
<th>عمل</th>
</tr>
</thead>
<tbody>
<tr>
<td>01.</td>
<td><b>#12453</b></td>
<td>هتل</td>
<td> 22 مهر ، 1402</td>
<td>11000 تومان</td>
<td><span class="badge badge-success">تکمیل شده</span></td>
<td>
<a href="#" class="btn btn-outline-secondary btn-sm"><i class="far fa-eye"></i></a>
</td>
</tr>
<tr>
<td>02.</td>
<td><b>#12453</b></td>
<td>پرواز</td>
<td> 22 مهر ، 1402</td>
<td>11000 تومان</td>
<td><span class="badge badge-success">تکمیل شده</span></td>
<td>
<a href="#" class="btn btn-outline-secondary btn-sm"><i class="far fa-eye"></i></a>
</td>
</tr>
<tr>
<td>03.</td>
<td><b>#12453</b></td>
<td>فعالیت</td>
<td> 22 مهر ، 1402</td>
<td>11000 تومان</td>
<td><span class="badge badge-warning">انتظار</span></td>
<td>
<a href="#" class="btn btn-outline-secondary btn-sm"><i class="far fa-eye"></i></a>
</td>
</tr>
<tr>
<td>04.</td>
<td><b>#12453</b></td>
<td>ماشین</td>
<td> 22 مهر ، 1402</td>
<td>11000 تومان</td>
<td><span class="badge badge-success">تکمیل شده</span></td>
<td>
<a href="#" class="btn btn-outline-secondary btn-sm"><i class="far fa-eye"></i></a>
</td>
</tr>
<tr>
<td>05.</td>
<td><b>#12453</b></td>
<td>کشتی</td>
<td> 22 مهر ، 1402</td>
<td>11000 تومان</td>
<td><span class="badge badge-danger">کنسل شده</span></td>
<td>
<a href="#" class="btn btn-outline-secondary btn-sm"><i class="far fa-eye"></i></a>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<form action="{{route('auth.login.post')}}" method="post">
@csrf
@error('general')
<span style="color: red">{{ $message }}</span>
@enderror
<div class="form-group">
<label for="email">آدرس ایمیل</label>
<div class="form-group-icon">
<input type="email" name="email" id="email" class="form-control" placeholder="ایمیل خود را وارد کنید" value="{{old('email')}}">
<i class="far fa-envelope"></i>
</div>
</div>
<div class="form-group">
<label for="password">رمز عبور</label>
<div class="form-group-icon">
<input type="password" class="form-control" name="password" id="password" placeholder="رمز عبور را وارد کنید">
<i class="far fa-lock"></i>
</div>
</div>
<div class="d-flex justify-content-between mb-3">
<div class="form-check">
<input class="form-check-input" type="checkbox" value id="remember">
<label class="form-check-label" for="remember">
مرا به یاد داشته باش
</label>
</div>
<a href="forgot-password.html" class="forgot-pass">رمز عبور را فراموش کرده اید؟</a>
</div>
<div class="d-flex align-items-center">
<button type="submit" class="theme-btn"><i class="far fa-sign-in"></i> ورود</button>
</div>
</form>
<div class="login-footer">
<div class="login-divider"><span>یا</span></div>
<div class="social-login">
</div>
<p>اکانت ندارید ؟ <a href="{{route('auth.register.index')}}">عضو شدن.</a></p>
</div>
</div>
</div>
</div>
</div>
</main>
@endsection
+5 -5
View File
@@ -24,7 +24,7 @@
</a>
<p>حساب MyTrip خود را ایجاد کنید</p>
</div>
<form action="#" method="POST" enctype="multipart/form-data">
<form action="{{route('auth.register.post')}}" method="POST" enctype="multipart/form-data">
@csrf
<div class="form-group">
<label for="first_name">نام *</label>
@@ -196,7 +196,7 @@
class="form-control"
placeholder="نام کاربری"
id="user_name"
value="{{old('username')}}"
value="{{old('user_name')}}"
>
@@ -236,13 +236,13 @@
</div>
</div>
<div class="form-group">
<label for="province">استان</label>
<label for="user_province">استان</label>
<div class="form-group-icon">
<select name="province" class="form-control" id="province">
<option value="">انتخاب استان</option>
@foreach($provinces as $province)
<option value="mazandaran">{{$province->name}}</option>
<option value="{{$provinces->id}}">{{$province->name}}</option>
@endforeach
@@ -254,7 +254,7 @@
</div>
</div>
<div class="form-group">
<label for="city">شهرستان</label>
<label for="user_city">شهرستان</label>
<div class="form-group-icon">
<select name="city" class="form-control" id="city">
<option value="">انتخاب شهرستان</option>