Я пытаюсь настроить проверку подлинности на основе файлов cookie между angular 5 и PHP 7.
Маршрут входа в систему возвращает правильный куки-файл аутентификации, но он не сохраняется в браузере. Затем последующие запросы не включают этот файл cookie, что приводит к ошибке 403.
Моя сессия PHP инициализируется так:
ini_set('session.cookie_domain', 'my.domain.com');
session_name('domain_prod');
session_set_cookie_params(0, '/', 'my.domain.com', true, true);
session_start();
session_regenerate_id();
На фронте я добавляю следующие заголовки к каждому запросу:
{
headers: new HttpHeaders({'Content-Type': 'application/x-www-form-urlencoded'}),
withCredentials: true
}
Локально работает хорошо, даже в режиме PROD. Та же серверная конфигурация также хорошо работает с angularJS.
Обратите внимание, что я включил CORS локально, потому что я работаю на другом порту:
header('Access-Control-Allow-Origin: localhost:4200');
header('Access-Control-Allow-Credentials: true');
Я попытался включить его на моем сервере, но безрезультатно.
header('Access-Control-Allow-Origin: my.domain.com');
header('Access-Control-Allow-Credentials: true');
Я в недоумении относительно того, почему cookie не сохраняется, возможно, это проблема конфигурации, но я не знаю, где искать.
Спасибо за вашу помощь.
Задача ещё не решена.
Других решений пока нет …