Laravel에 Sanctum이 포함된 백엔드 API가 있고 NuxtJS에 별도의 저장소 SPA가 있습니다
Sanctum으로 SPA를 인증하려고 합니다. 브라우저에서 CSRF 쿠키를 얻기 위해 Sanctum 문서를 따르려고 합니다.
문제는 Sanctum에서 제공하는 CSRF 토큰 엔드포인트를 호출하면 올바른 응답을 받지만 쿠키가 설정되지 않는다는 것입니다. 그게 다입니다. 오류가 없습니다. nuxt auth를 사용하려는지 아니면 그냥 오래된 axios 호출을 사용하려는지는 중요하지 않습니다.
내가 가지고 있는 것은 다음과 같습니다:
도메인 이름: API-publisher.local:8080; front-end-publisher.local:3000
NUXT 인증 구성
으아아아AXIOS 구성
으아아아sacred.php
으아아아session.php
으아아아이 설정을 다양하게 조합하고 변형해 보았으나 효과가 없었습니다. 무엇이 잘못될 수 있는지 아시나요?
이제 알아낸 것 같아요. 나는 그것을 작동시켰다.
그러므로
.local
는 최상위 도메인이 될 수 없습니다. 그게 문제의 일부일 수도 있지만 확실하지 않습니다.도메인 이름을 기존 이름으로 변경
localhost
하면 문제를 해결할 수 있지만 이 해결 방법에는 문제가 있습니다. 어떤 이유에서인지는 모르겠지만 어떤 엔드포인트를 호출하든 상관없이 API를 호출할 때마다 자동으로 XSRF 쿠키를 받습니다. 기묘.가장 효과적인 방법은 도메인 이름을
api.publisher.com
和publisher.com
로 변경한 후 Sanctum 문서의 모든 설정을 변경하는 것입니다.도메인 이름에 각별히 주의하세요. 이름이 일치하고 올바르게 설정되었는지 확인하세요. 그것을 재구성하는 것은 매우 쉽지만 진단하는 것은 어렵습니다!
도움이 되기를 바랍니다!