CORS та аутентифікація в Laravel нарешті вирішено — Крістіан Бахман

pic

Якщо ти працюєш з Laravel-API на бекенді та JavaScript-застосунком на фронтенді, який використовує токен-аутентифікацію, напевно вже стикнувся з відомою проблемою CORS. Якщо ти зараз відчайдушно намагаєшся виправити помилку CORS, коли твій запит на токен постійно відкидається з помилкою CORS, то ти потрапив саме в потрібне місце!

Після багатьох безуспішних спроб знайти рішення, я нарешті знайшов правильний спосіб і хочу поділитися ним — щоб ти (і я в майбутньому) більше не потрапили в це CORS-хаос.

Початкові умови

  • Laravel-бекенд-застосунок
  • JavaScript-фронтенд з токен-аутентифікацією
  • Запит на токен постійно викликає CORS помилку

Рішення в три кроки

1. Перевірка налаштувань CORS

Перше, що потрібно зробити, це перевірити, чи правильно налаштовані CORS-настройки в Laravel. Для цього потрібно перевірити конфігураційний файл CORS за адресою config/cors.php.

Якщо цей файл відсутній, його можна створити за допомогою наступної команди:

php artisan config:publish cors

Після виконання цієї команди файл з'явиться за адресою config/cors.php.

2. Налаштування правильних параметрів

У файлі config/cors.php потрібно змінити два основні параметри:

  1. Підтримка облікових даних: Переконайтеся, що опція supports_credentials встановлена на true:'supports_credentials' => true,
  2. Розширення шляхів: Laravel зазвичай обробляє стандартні API-маршрути під api/*. Але якщо ваші запити на токени використовують інші кінцеві точки, наприклад, sanctum/csrf-cookie або oauth/*, ці шляхи потрібно явно вказати в конфігурації:'paths' => ['api/*', 'sanctum/csrf-cookie', 'oauth/*'], Це було найбільшим каменем спотикання в моєму випадку!

3. Очистка кешу і застосування налаштувань

Laravel використовує кешування конфігурацій, тому після зміни налаштувань потрібно очистити кеш і оптимізувати його:

php artisan optimize

І ось воно: Працює!

Висновок

Отже, якщо твій запит на токен не працює, хоча ти впевнений, що все правильно налаштовано, перевір ще раз налаштування CORS. Мале уточнення в конфігурації paths може стати вирішальним фактором!

І завжди пам'ятай: CORS — це як строгий охоронець на вході: або ти в списку, або залишаєшся зовні.

Сподіваюся, цей пост допоможе тобі швидше вирішувати майбутні проблеми з CORS. Успіхів у програмуванні!

Оригінально опубліковано на https://www.christianbachmann.ch 26 січня 2025 року.

Перекладено з: CORS und Laravel Authentication endlich gelöst — Christian Bachmann

Leave a Reply

Your email address will not be published. Required fields are marked *