همانطور که میدانید، در لاراول عملیات ورود بهصورت پیشفرض توسط ایمیل و رمز عبور انجام میشود. در این سؤال شما باید این فرآيند را طوری تغییر دهید که کاربر بتواند علاوه بر ایمیل با شماره موبایل نیز وارد شود.
جزئیات پروژه
در این پروژه از Laravel 8 استفاده شده است.
پروژهی اولیه را از این لینک دانلود کنید.
ساختار فایلها
login_phone
├── app
│ ├── Actions
│ │ ├── Fortify
│ │ │ ├── CreateNewUser.php
│ │ │ ├── PasswordValidationRules.php
│ │ │ ├── ResetUserPassword.php
│ │ │ ├── UpdateUserPassword.php
│ │ │ └── UpdateUserProfileInformation.php
│ │ └── Jetstream
│ │ └── DeleteUser.php
│ ├── Console
│ │ └── Kernel.php
│ ├── Exceptions
│ │ └── Handler.php
│ ├── Http
│ │ ├── Controllers
│ │ │ └── Controller.php
│ │ ├── Middleware
│ │ │ ├── Authenticate.php
│ │ │ ├── EncryptCookies.php
│ │ │ ├── PreventRequestsDuringMaintenance.php
│ │ │ ├── RedirectIfAuthenticated.php
│ │ │ ├── TrimStrings.php
│ │ │ ├── TrustHosts.php
│ │ │ ├── TrustProxies.php
│ │ │ └── VerifyCsrfToken.php
│ │ └── Kernel.php
│ ├── Models
│ │ └── User.php
│ ├── Providers
│ │ ├── AppServiceProvider.php
│ │ ├── AuthServiceProvider.php
│ │ ├── BroadcastServiceProvider.php
│ │ ├── EventServiceProvider.php
│ │ ├── FortifyServiceProvider.php
│ │ ├── JetstreamServiceProvider.php
│ │ └── RouteServiceProvider.php
│ └── View
│ └── Components
│ ├── AppLayout.php
│ └── GuestLayout.php
├── bootstrap
│ ├── cache
│ │ ├── .gitignore
│ │ ├── packages.php
│ │ └── services.php
│ └── app.php
├── config
│ ├── app.php
│ ├── auth.php
│ ├── broadcasting.php
│ ├── cache.php
│ ├── cors.php
│ ├── database.php
│ ├── filesystems.php
│ ├── fortify.php
│ ├── hashing.php
│ ├── jetstream.php
│ ├── logging.php
│ ├── mail.php
│ ├── queue.php
│ ├── sanctum.php
│ ├── services.php
│ ├── session.php
│ └── view.php
├── database
│ ├── factories
│ │ └── UserFactory.php
│ ├── migrations
│ │ ├── 2014_10_12_000000_create_users_table.php
│ │ ├── 2014_10_12_100000_create_password_resets_table.php
│ │ ├── 2014_10_12_200000_add_two_factor_columns_to_users_table.php
│ │ ├── 2019_08_19_000000_create_failed_jobs_table.php
│ │ ├── 2019_12_14_000001_create_personal_access_tokens_table.php
│ │ └── 2020_11_17_093623_create_sessions_table.php
│ ├── seeders
│ │ └── DatabaseSeeder.php
│ └── .gitignore
├── public
│ ├── css
│ │ └── app.css
│ ├── js
│ │ └── app.js
│ ├── storage
│ │ └── .gitignore
│ ├── .htaccess
│ ├── favicon.ico
│ ├── index.php
│ ├── mix-manifest.json
│ ├── robots.txt
│ └── web.config
├── resources
│ ├── css
│ │ └── app.css
│ ├── js
│ │ ├── app.js
│ │ └── bootstrap.js
│ ├── lang
│ │ └── en
│ │ ├── auth.php
│ │ ├── pagination.php
│ │ ├── passwords.php
│ │ └── validation.php
│ └── views
│ ├── api
│ │ ├── api-token-manager.blade.php
│ │ └── index.blade.php
│ ├── auth
│ │ ├── forgot-password.blade.php
│ │ ├── login.blade.php
│ │ ├── register.blade.php
│ │ ├── reset-password.blade.php
│ │ ├── two-factor-challenge.blade.php
│ │ └── verify-email.blade.php
│ ├── layouts
│ │ ├── app.blade.php
│ │ └── guest.blade.php
│ ├── profile
│ │ ├── delete-user-form.blade.php
│ │ ├── logout-other-browser-sessions-form.blade.php
│ │ ├── show.blade.php
│ │ ├── two-factor-authentication-form.blade.php
│ │ ├── update-password-form.blade.php
│ │ └── update-profile-information-form.blade.php
│ ├── dashboard.blade.php
│ ├── navigation-dropdown.blade.php
│ └── welcome.blade.php
├── routes
│ ├── api.php
│ ├── channels.php
│ ├── console.php
│ └── web.php
├── storage
│ ├── app
│ │ ├── public
│ │ │ └── .gitignore
│ │ └── .gitignore
│ ├── framework
│ │ ├── cache
│ │ │ ├── data
│ │ │ │ └── .gitignore
│ │ │ └── .gitignore
│ │ ├── sessions
│ │ │ └── .gitignore
│ │ ├── testing
│ │ │ └── .gitignore
│ │ ├── views
│ │ │ └── .gitignore
│ │ └── .gitignore
│ └── logs
│ └── .gitignore
├── tests
│ ├── Feature
│ │ └── ExampleTest.php
│ ├── Unit
│ │ └── ExampleTest.php
│ ├── CreatesApplication.php
│ └── TestCase.php
├── .editorconfig
├── .env
├── .env.example
├── .gitattributes
├── .gitignore
├── .styleci.yml
├── README.md
├── artisan
├── composer.json
├── composer.lock
├── package-lock.json
├── package.json
├── phpunit.xml
├── server.php
├── tailwind.config.js
├── webpack.config.js
└── webpack.mix.js
راهاندازی پروژه
برای اجرای پروژه، باید php
و composer
را از قبل نصب کرده باشید.
- ابتدا پروژهی اولیه را دانلود و از حالت فشرده خارج کنید.
- دستور
composer install
را در پوشهی اصلی پروژه برای نصب نیازمندیها اجرا کنید.
پس از آن، میتوانید با دستور php artisan migrate
مایگریشنها را اجرا کنید.
نکات
- نام ستونی از جدول
users
که شماره موبایل در آن ذخیره میشودphone
است. - شماره موبایل و ایمیل هر دو از طریق فیلد
email
و از طریق متد POST ارسال میشوند. - شماره موبایل به صورت
09xxxxxxxxx
و ایمیلها به فرمت
[ترکیبی از حروف انگلیسی و .]@[وبسایت بدون www]
هستند و کاربر با هیچ حالتی غیر از این فرمتها نباید اجازه ورود پیدا کند.
- شما تنها مجاز به اعمال تغییرات در پوشهی
app
هستید.
آنچه باید آپلود کنید
پس از اعمال تغییرات، کل پروژه به غیر از پوشهی vendor
را Zip کرده و آپلود کنید.
توجه کنید که نام فایل Zip اهمیتی ندارد.
ارسال پاسخ برای این سؤال