Я разрабатываю новый интерфейс, используя Vue для доступа к моему существующему приложению Laravel 7, которое использует Sanctum для аутентификации.
Интерфейс находится на app.example.com, а серверный модуль перемещается на api.example.com. Промежуточное ПО CORS и Sanctum настроены правильно, чтобы разрешить app.example.com, и пока все хорошо.
GET to /sanctum/csrf-cookie
выглядит нормально, однако, похоже, что на самом деле файлы cookie не устанавливаются , в результате чего последующий запрос к API возвращает 419.
const config = { withCredentials: true };
const api = process.env.NODE_ENV === 'production' ? 'https://api.example.com' : 'http://localhost:9000';
axios.get(api + '/sanctum/csrf-cookie', config)
.then(() => axios.post(api + '/login', data, config))
.then(response => response.json())
.then(response => { console.log('json', response); });
Журнал консоли:
Заголовки ответа от / sanctum / csrf-cook ie:
Файлы cookie не указаны в devtools:
ОБНОВЛЕНИЕ 1 : Didn не замечал этого раньше; значки предупреждений рядом с каждым Set-Cookie
в заголовках ответа отображают «Атрибут домена этого set-cook ie недействителен по отношению к текущему URL-адресу хоста».