همانطور که میدانید، در لاراول عملیات ورود بهصورت پیشفرض توسط ایمیل و رمز عبور انجام میشود. در این سؤال شما باید این فرآيند را طوری تغییر دهید که کاربر بتواند علاوه بر ایمیل با شماره موبایل نیز وارد شود.
جزئیات پروژه
در این پروژه از 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 اهمیتی ندارد.
ارسال پاسخ برای این سؤال