Код ошибки Laravel Sanctum Angular Authentication 419

Я пытаюсь настроить систему аутентификации, используя Laravel Sanctum и Fortify для серверной части и Angular для интерфейса.

Внешний интерфейс работает на локальном хосте: 4200
серверная часть работает на: localhost:8000

Я следовал этому учебнику по распространенным ошибкам и соответствующим образом настроил файл .env. так это выглядит так:

SESSION_DRIVER=file
SESSION_LIFETIME=120
SESSION_DOMAIN=localhost
SANCTUM_STATEFUL_DOMAINS=localhost:4200
FRONTEND_URL=http://localhost:4200

и моя конфигурация cors.php:

<?php

return [

  

    'paths' => ['*'],

    'allowed_methods' => ['*'],

    'allowed_origins' => [env('FRONTEND_URL', 'http://localhost:4200')],

    'allowed_origins_patterns' => [],

    'allowed_headers' => ['*'],

    'exposed_headers' => [],

    'max_age' => 0,

    'supports_credentials' => true,

];

Для входа в систему моих пользователей я использую эту функцию службы angular:

options = {
    headers: new HttpHeaders({
      Accept: 'application/json',
    }),
    withCredentials: true,
  }

login(email: string, password: string): Observable<any> {
    return this.http
      .get(this.baseUrl + '/sanctum/csrf-cookie', this.options)
      .pipe(
        switchMap(() =>
          this.http.post(
            this.baseUrl + '/login',
            { email, password },
            this.options
          )
        )
      );
  }

проблема в том, что когда я пытаюсь войти в систему, я получаю код ошибки 419, говорящий о несоответствии токена CSRF.

просмотрев файлы cookie в консоли браузера, список пуст, поэтому файлы cookie не передаются, даже если запрос /csrf-cookie выполнен успешно

Что я делаю не так с ней? это служба angular или моя внутренняя конфигурация?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я наконец решил проблему, спросив во всех возможных источниках, давайте поговорим об этом:

Похоже, что конкретно на MacOS, если вы попытаетесь отправить запрос с локального хоста: 4200, заголовки Origin и Refero не будут соответствовать заголовку Host по какой-то причине.

я решил это изменение при каждом появлении localhost в моих файлах Laravel .env и config, а затем перешел на 127.0.0.1:4200 внутри браузера вместо localhost:4200

это немного странно объяснять, но это заставляет запросы поступать к одному и тому же источнику, даже если ключевое слово localhost должно означать IP-адрес 127.0.0.1 по умолчанию.

надеюсь, это поможет кому-то

Другие вопросы по теме

Похожие вопросы

Как добавить условные операторы if..else в построитель запросов к базе данных Laravel
Много проблем с поставщиком после создания проекта laravel
Как сохранить контактную информацию с веб-сайта на Android или iPhone с помощью кнопки HTML с интеграцией JS или PHP?
Сортировка и группировка двумерного массива по двум столбцам для формирования иерархического трехмерного массива, а затем отображение данных в виде списков HTML
Ни один файл PHP не распознается как файл PHP в PhpStorm
Почему я не могу получить доступ к защищенному методу из частного метода, если защищенные наследуются подклассами?
Удалить необходимое из поля в дочерней модели yii2
Неопределенный ключ массива только для первого ключа в массиве, любой другой ключ работает нормально. Кодигнитер 4
Как получить токен доступа с помощью токена обновления в DocuSign и PHP?
Можно ли создать профиль для пользовательского объекта для импорта/экспорта данных с помощью CSV?