- Блог
- Аутентифікація за допомогою Laravel та MongoDB
Аутентифікація за допомогою Laravel та MongoDB
Оновлено: 14 листопада, 2025
Вам цікаво дізнатися, як реалізувати аутентифікацію користувачів за допомогою Laravel та MongoDB? У нашому новому туторіалі ви знайдете покрокову інструкцію, як налаштувати середовище для розробки, інтегрувати MongoDB та забезпечити безпечний доступ до вашої програми
Дякую, що приєдналися до цього навчального посібника, де ви дізнаєтеся, як налаштувати аутентифікацію користувачів для Laravel і MongoDB. Ми почнемо з налаштування локального середовища розробки, розглянемо деякі зміни у файлах, а в фіналі отримаємо працюючу базову аутентифікацію з MongoDB
## Налаштування середовища
Laravel — це PHP-фреймворк, який спрощує створення стандартизованих веб-застосунків. У цьому навчальному посібнику ми налаштуємо PHP, Laravel і MongoDB на macOS. Спочатку встановимо PHP, Composer та Laravel Installer за допомогою таких команд терміналу:
```
/bin/bash -c "$(curl -fsSL https://php.new/install/mac/8.4)"
```
Цей bash-скрипт розширить вашу змінну PATH, додавши шлях до всіх необхідних команд. Якщо ви побачите таку помилку:
```
ERROR Unknown shell. Defaulting to update ~/.profile.
```
Вам, можливо, доведеться зробити це вручну. У моєму випадку я використовую оболонку fish, тому це робиться так:
```
fish_add_path /Users/[YOUR-USERNAME]/.config/herd-lite/bin
```
Перевірте, що всі необхідні команди працюють, виконавши:
```
php -r "phpinfo();" | grep "Loaded Configuration File"
```
У результаті ви повинні побачити завантажений конфігураційний файл для PHP, що вказує на ваше розширення шляху — ви готові до роботи! Швидко пройдемося через версії, які я використовував у цьому навчальному посібнику:
```
php -v
# PHP 8.4.1 (cli) (built: Nov 21 2024 09:02:06) (NTS)
composer -v
# Composer version 2.8.3 2024-11-17 13:13:04
laravel -v
# Laravel Installer 5.14.0
```
Усі ці команди повинні працювати і показувати версії, подібні до моїх. Для компіляції фронтенд-ресурсів Laravel вам потрібні Node і NPM або Bun. Ознайомтеся з офіційними інструкціями щодо їх встановлення:
- [Node і NPM](https://nodejs.org/en/download)
- [Bun](https://bun.sh/)
## Створення застосунку Laravel
Тепер, коли середовище розробки налаштоване, ми використаємо Laravel Installer для створення каркаса нашого застосунку Laravel. Змініть директорію на ту, де хочете створити застосунок, і виконайте:
```
laravel new mongodb-auth-app
```
Відповідайте на запитання так:
```
Який стартовий набір ви хочете встановити?
React
Який постачальник аутентифікації вам подобається?
Вбудована аутентифікація Laravel
Який фреймворк тестування вам подобається?
PHPUnit
Чи хочете ви виконати npm install та npm run build?
Так
```
Тепер, коли каркас застосунку створено і всі фронтенд-залежності встановлені та зібрані, перейдіть до директорії застосунку та перегляньте:
```
cd mongodb-auth-app
```
Структура директорії застосунку повинна виглядати так:
```
app/
artisan*
bootstrap/
composer.json
composer.lock
config/
database/
node_modules/
package-lock.json
package.json
phpunit.xml
public/
README.md
resources/
routes/
storage/
tests/
vendor/
vite.config.js
```
Запустіть свій застосунок Laravel за допомогою `composer run dev`. Тепер відкрийте браузер за адресою [http://localhost:8000/](http://localhost:8000/) і побачите ваш застосунок Laravel. Він повинен виглядати так:

Час налаштувати MongoDB.
## Налаштування локальної бази даних MongoDB
MongoDB — це документно-орієнтована база даних, розроблена компанією MongoDB Inc. Вона була випущена в лютому 2009 року та здобула величезну популярність завдяки своїй безсхемній структурі, що прискорює розробку, а також потужній мові запитів MongoDB. MongoDB можна легко розгортати як самостійну базу даних, так і у вигляді реплікаційного набору з трьох вузлів. Горизонтальне масштабування здійснюється за допомогою шардінгу.
Давайте налаштуємо MongoDB на нашому комп'ютері. Найзручніший і найбільш підтримуваний спосіб встановлення MongoDB на macOS — це через Homebrew. Якщо ви ще не маєте Homebrew, будь ласка, [встановіть його](https://brew.sh/) за допомогою офіційного сайту та документації. Homebrew пропонує формули для всіх основних версій MongoDB, починаючи з версії 4.4. Якщо ви хочете лише останню версію, скористайтеся формулою `mongodb/brew/mongodb-community`. Інакше виберіть `mongodb/brew/mongodb-community@8.0`. На момент написання `mongodb/brew/mongodb-community` встановлює **MongoDB версії 8.2.0**.
Також є формули для оболонки MongoDB та інструментів бази даних, які автоматично встановлюються як залежності для `mongodb/brew/mongodb-community`. Встановіть MongoDB зараз:
```
brew install mongodb/brew/mongodb-community
```
Після встановлення MongoDB ви можете або запустити його як службу з:
```
brew services start mongodb/brew/mongodb-community
```
…або запустити у вікні терміналу за допомогою:
```
/usr/local/opt/mongodb-community/bin/mongod --config /usr/local/etc/mongod.conf
```
Я виконував цей навчальний посібник на своєму MacBook Pro з Apple Silicon, але моє початкове налаштування Homebrew було зроблено багато років тому. Перевірте ваше встановлення, можливо, ваш шлях починається з /opt/homebrew.
**ПРО-ПОРАДА:** Змініть конфігураційний файл MongoDB, закоментуйте секцію systemLog:
```
#systemLog:
# destination: file
# path: /usr/local/var/log/mongodb/mongo.log
# logAppend: true
```
Це відображатиме всі лог-файли MongoDB безпосередньо в терміналі. Я використовую iTerm2 і додав профіль MongoDB з вище наведеним командою. Тепер, якщо мені потрібно швидко запустити MongoDB, я просто відкриваю профіль, з’являється нова вкладка терміналу, і я можу бачити, що відбувається з MongoDB.
## Підключення вашого Laravel застосунку до MongoDB
Тепер, коли у вас є працюючий застосунок Laravel і MongoDB, давайте їх з'єднаємо. Спочатку встановіть пакет Laravel MongoDB за допомогою команди:
```
composer require mongodb/laravel-mongodb
```
Пакет [laravel-mongodb](https://www.mongodb.com/resources/products/compatibilities/mongodb-laravel-integration?utm_campaign=devrel&utm_source=third-party-content&utm_medium=cta&utm_content=authentication-laravel-mongodb&utm_term=megan.grant) офіційно підтримується MongoDB, і хоча MongoDB нативно підтримується PHP через MongoDB Driver, пакет Laravel MongoDB забезпечує більш глибоку інтеграцію з Eloquent та іншими функціями Laravel. Якщо у вас виникли проблеми з невідповідністю версій залежностей, додайте до команди щось на кшталт `--ignore-platform-req=ext-mongodb`.
Додайте рядок підключення MongoDB і назву бази даних у файл `.env`:
```
DB_CONNECTION=mongodb
DB_QUEUE_CONNECTION=mongodb
DB_URL=mongodb://localhost:27017
DB_DATABASE=mongodb_auth_app
CACHE_STORE=mongodb
```
Зареєструйте підключення до бази даних у `config/database.php`:
```php
'mongodb' => [
'driver' => 'mongodb',
'dsn' => env('DB_URL', 'mongodb://localhost:27017'),
'database' => env('DB_DATABASE', 'laravel_app'),
],
```
Змініть `[connections][database][driver]` з “database” на “mongodb” у файлі `config/queue.php`. Зареєструйте кеш у файлі `config/cache.php` ось так:
```php
'mongodb' => [
'driver' => 'mongodb',
'connection' => 'mongodb',
],
```
І на кінець, додайте MongoDB Service Provider до файлу `bootstrap/providers.php`:
```php