CSRFトークンを「適切に」取得するにはどうすればよいですか?
Axios を使用して Vue SPA にログインしようとしています。
Auth::routes();
によって生成されたルートを除いて、すべてを Vue コンポーネントに変更しましたphp artisan ui:auth
。したがって、フォームで使用できなくなり@csrf
、axios のヘッダーを介して csrf トークンを送信する必要があります。Laravel によって Cookie に与えられた XSRF TOKEN が HTML で取得したものと異なることに気付くまで、ほぼすべてを 2 日間試しました...下の写真を参照してください。
これは開発者ツールから来ています。
app.blade.php
これを追加したので、CSRFトークンを取得してaxiosヘッダーに添付できます。
console.log() を実行すると、別のトークンが表示されます。
console.log() のときに取得するトークン:o3nQRW6IqiKdNGOdiHc59pYXXD3sBw8YfbpCPvf7
Cookie から CSRF トークンを取得してから ? を使用しないのはなぜdocument.cookie
ですか?、同じことです。console.log() するたびに一致しません。
これが間違いなく、私が何をしても、常に 419 エラー CSRF トークンの不一致が発生する理由です。何が原因でしょうか?
注:ファイル内でのみ使用しAuth::routes()
ていapi.php
ます。には何もありませんweb.php
。奇妙なことに、一度ユーザーを登録できましたが、同じ問題が原因で二度と登録できませんでした。