私たちの実稼働サーバーは、数か月前から無効な認証トークン エラーを生成しています。エラーは、(PUT|POST|DELETE) リクエストを送信するほぼすべてのフォームで生成されます。エラーが発生する場合と発生しない場合があります。なぜそれらが発生するのかについて韻や理由はないようです。エラー自体は頻繁に発生するわけではありませんが、心配です。以下は、このエラーの原因となる典型的なフォームの例です。
<form class="button_to" method="post" action="/lesson_progress_trackers/333">
<input type="hidden" name="_method" value="patch">
<input class="finish-lesson-button" type="submit" value="Done!">
<input type="hidden" name="authenticity_token" value="Qd3FsJZY2UXR9vahuFmaY5rrqA+J5xzGpl4cGI2Vwerx8PZPQtDMugz6oqoe3iviC+/U5zTYPdeX3apwbap09E==">
<input type="hidden" name="completed" value="true">
</form>
これが私がこれまでに発見したものです。
- Turbolinks 2.5.3 を使用しています (これは 1 年以上更新されていません)。
- 無効なトークン エラーが発生するたびに、ユーザーは認証トークンをサーバーに渡しましたが、最終的には無効になりました。
- 現在
protect_from_forgery with: :exception
、アプリケーションコントローラーで使用しています。 - 数か月前に一連の新しいコードを本番環境にプッシュしたときに、エラーが発生し始めました。この新しいコードは数百のファイルにまたがっていますが、これまでのところ、この問題に関連するコードは見つかりませんでした。
- このエラーは、どのタイプのブラウザとデバイスでも発生する可能性があります。
- トラフィックの増加と無効な認証トークンの表示との間に相関関係はありません。
- ユーザーはどの国からでも来ることができます。
- これらは、これらの問題が発生しているボットではありません。私たちの同僚にもこのエラーが発生したことがありましたが、彼らはエラーを発生させるために何をしたか覚えていません。
- ユーザーは、予期しない場合でも典型的な動作に従います。彼らは意図したとおりにアプリを使用しています。私は彼らのクリックと記録された行動履歴に目を通し、これを結論付けました.
最終的には、これを解決する方法を見つけたいと思います。私の最初のステップは、エラーを正常に再現することですが、それもできません。私の質問は次のとおりです。これの原因を突き止めるにはどうすればよいですか? オプションが不足しています。ありがとう!