SPAにはVue jsを、バックエンドにはLaravelを使用しています。それはすべて正常に動作しますが、一度フォームが提出されれば明らかにcrsfトークンがリフレッシュされていないので、別のフォームを送信するとTokenMismatchException
と表示されます。SPAを使用したCSRFトークン
フォームがvue内のコンポーネントであるためレンダリングしようとすると、vueがエラーをスローするため、csrfトークンをフォームに挿入できません。
vueのデフォルトの共通ヘッダーを使用して、最初のリクエストでは動作しますが、現在ログインしているユーザーが最近トークンを使用したため、LaravelがTokenMismatchException
を返した後に、すべてのリクエストに対してname=_token
を検索してアクセスできます。
トークンをページをリフレッシュせずにリフレッシュできるようにするには、SPAではない方法を見つけ出す必要があります。
ご協力いただければ幸いです。
ありがとうございました。 2番目の文は少しオフになっているようファンキー
いいえ、それは単にcsrfトークンにアクセスする方法を示しています。私が説明したように私はそれを行うことができます。問題は、一度ログインしてしまえば、同じcsrfトークンを再び使用することはできません。リフレッシュする必要がありますが、ページが更新されずにリフレッシュできないためです。 @manniL – Jack
1)https://laravel-news.com/excluding-routes-from-the-csrf-middleware 2)xhrで毎回新しいトークンを生成 –
どのミドルウェアを使用していますか? – Chris