Эта проблема возникла из-за того, что браузер / angular будет прикреплять файлы cookie только к запросам, которые имеют тот же домен, на который поступил запрос.
Чтобы исправить это в среде разработчика, где приложение angular обслуживается на локальном хосте, а приложение Laravel находится в домене, подобном ab c .api.hydrogen.local, я проксировал запросы от angular app:
Сначала убедитесь, что ваши запросы являются относительными маршрутами, например, я изменил свои вызовы на / api / sanctum / crsf, который затем проксируется на http://abc.api.hydrogen.local/sanctum/crsf
Затем создайте конфигурацию прокси proxy.conf.json
в root проекта:
{
"/api/*": {
"target": "http://abc.api.hydrogen.local",
"secure": false,
"changeOrigin": true,
"logLevel": "debug",
"pathRewrite": {
"^/api": ""
}
}
}
Затем отредактируйте angular.json
, чтобы использовать прокси, когда он обслуживает:
"architect": {
...
"serve": {
...
"options": {
....
"proxyConfig": "proxy.conf.json"
}
}
}
Наконец, в вашем файле .env
добавьте следующее, чтобы гарантировать, что sanctum идентифицирует запросы как от SPA первого лица, а браузер может читать и прикреплять файлы cookie к запросу.
SANCTUM_STATEFUL_DOMAINS=localhost,.hydrogen.local
SESSION_DRIVER=cookie
SESSION_DOMAIN=localhost
Теперь все должно работать .