CSRF 쿠키를 생성하기 위해 프런트엔드에서 Laravel Sanctum을 사용할 수 없습니다.
<p>최근 Nuxt 3에서 인증을 위해 Laravel Sanctum을 사용하려고 시도했지만 초기 CSRF 쿠키 핸드셰이크 중에 문제가 발생했습니다. 문제는 <code>http://localhost:8000/sanctum/csrf-cookie</code> 경로를 요청한 후 브라우저에서 XSRF-TOKEN 쿠키를 설정하지 않는다는 것입니다. 나는 이 문제로 일주일 동안 갇혀 있었고 인터넷에서 해결책을 찾지 못했습니다.
XSRF-TOKEN을 설정하기 위해 Axios 및 Fetch API를 사용해 보았으나 성공하지 못했습니다. 저는 백엔드에서 <code>http://localhost:8000</code>를 사용하고 프런트엔드에서 <code>http://localhost:3000</code>를 사용하고 있습니다. Laravel Sanctum 자체는 Postman에서 테스트할 때 set-cookie 헤더를 수신하지만 브라우저는 수신하지 않는 것처럼 잘 작동합니다. <code>.env</code> 파일에 다음 속성을 설정했습니다. </p>
<pre class="brush:php;toolbar:false;">FRONTEND_URL=http://localhost:3000
SESSION_DOMAIN=localhost:3000
SESSION_DRIVER=쿠키</pre>
<p>저는 프런트 엔드에서 CORS 요청의 한계를 극복하기 위해 모든 노력을 기울였습니다. 내 가져오기 기능은 다음과 같습니다. </p>
<pre class="brush:php;toolbar:false;">window.fetch('http://localhost:8000/sanctum/csrf-cookie', {
자격 증명: '포함',
}).then((응답) => {
console.log(…응답.헤더)
})</pre>
<p>자격증명을 '포함'으로 설정하면 문제가 해결된다는 내용을 읽었지만, 그래도 여전히 XSRF-TOKEN을 설정할 수 없습니다. 자격 증명을 'same-origin'으로 설정하려고 시도했지만 작동하지 않았습니다. 이 문제를 해결하는 방법을 아는 사람이 있나요? </p>