Securityコンポーネントのトークン
securityコンポーネントは自動でトークンの発行とチェックをしてくれる?ようですが、
1つのアクション内で 表示 → 確認 → 完了 まですると、
表示のときはトークンが$form->end();でセットされているんですが、
確認画面になると生成されていません。。。。
すごく基本的なことで悩んでいたかもしれません。あまりソースを追いかけていないのもありますし。。。
とりあえず、ランダムなIDを発行してくれるという String::uuid() を使ってトークンをつくりました。
確認画面の表示の時に、$this->set('token',String::uuid());
あとはそれを完了時にクッキーにいれて、再度送信されたときに既にあるかをチェックすれば2重送信は一応防げるのではないでしょうか。。。
1つのアクション内で 表示 → 確認 → 完了 まですると、
表示のときはトークンが$form->end();でセットされているんですが、
確認画面になると生成されていません。。。。
すごく基本的なことで悩んでいたかもしれません。あまりソースを追いかけていないのもありますし。。。
とりあえず、ランダムなIDを発行してくれるという String::uuid() を使ってトークンをつくりました。
確認画面の表示の時に、$this->set('token',String::uuid());
あとはそれを完了時にクッキーにいれて、再度送信されたときに既にあるかをチェックすれば2重送信は一応防げるのではないでしょうか。。。