実際にform_rest(form)
は、CSRF トークンをスローするだけでなく、この関数はまだレンダリングされていないフォーム行をすべて出力し、無視された追加フィールドが確実にレンダリングされるようにするのに適しています。
CSRF トークンが表示されない理由は、FOSUserBundle ログイン フォームが Symfony フォームではなく、FOSUser フォーム ハンドラーによって処理される通常の HTML フォームであるためです。
この決定が下された理由は完全にはわかりませんが、その背後に技術的な理由があったことは確かです。問題がある場合は、手動で追加し、フォームハンドラーを拡張して処理し、応答で検証することができます.サービスはパラメータ化されているので、交換は比較的簡単だと思います。
しかし、私の大きな質問は、なぜあなたがこれをわざわざするのですか? それは大規模な取引ですか?CSRF は便利なステップですが、セキュリティの万能ソリューションではありません。個人的には、これよりも優先度が高くなります。大したことであれば、いつか FOS で修正されるでしょう。
後者の点については、関連性がよくわかりませんが、これが段階的な関与の達成をどのように妨げているのですか? とにかく簡単なヒントですが、システムのこの部分を自分で設計したわけではありませんが、私が最近取り組んでいる e コマース プロジェクトで、リーダーは段階的なエンゲージメントを達成することを決定しました (人々が匿名でチェックアウトできるようにするため)。彼らのアクションの非常に早い段階で、新しいユーザーは自動生成されたユーザー名と ROLE_GUEST などのカスタムロールで永続化されます.Symfony のデフォルト機能は私たちのユースケースには不十分であることがわかります.