無法在前端使用Laravel Sanctum來產生CSRF cookie
<p>最近我嘗試在Nuxt 3中使用Laravel Sanctum進行身份驗證,但在初始的CSRF cookie握手過程中遇到了問題。問題是,在我向<code>http://localhost:8000/sanctum/csrf-cookie</code>路徑發出請求後,瀏覽器沒有設定XSRF-TOKEN cookie。我已經困在這個問題上已經一個星期了,在互聯網上還沒有找到解決方案。
我嘗試使用Axios和Fetch API來設定XSRF-TOKEN,但沒有成功。我在後端使用的是<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=cookie</pre>
<p>我已經盡一切努力克服前端CORS請求的限制。我的fetch函數如下所示:</p>
<pre class="brush:php;toolbar:false;">window.fetch('http://localhost:8000/sanctum/csrf-cookie', {
credentials: 'include',
}).then((response) => {
console.log(…response.headers)
})</pre>
<p>我讀到將credentials設定為'include'可以解決問題,但即使這樣做,我仍然無法設定XSRF-TOKEN。我嘗試將credentials設定為'same-origin',但也不起作用。有人知道如何解決這個問題嗎? </p>