1

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。奇妙なことに、一度ユーザーを登録できましたが、同じ問題が原因で二度と登録できませんでした。

4

1 に答える 1