2011-07-14 10 views
2

私はdjangoウェブサイトのモバイルアプリケーションを作成しています。私はdjangoのすべてのフォームが保護のためのCSRFトークンキーを持っていることを理解しています。ブラウザを使用してサイトをナビゲートすると、サーバーはユーザーのキーを表示します。モバイルアプリケーションにdjango_csrfを使用する方法

私が混乱しているのは、モバイルアプリケーション用です。サイトからプリセットレイヤーを表示する必要はありません。データを送信するためにHTTPポストをやりたいだけです。私はcsrf_exemptを使用してそのフォームのcsrfを無効にすることができます。または私は別のビューを私のためにcsrfトークンをレンダリングすることができますが、このように私は余分な解析とhttp要求が必要です。そうするより良い方法がありますか?

お時間

答えて

2

のおかげで、あなたのモバイルアプリは、あなたがフォームをレンダリングするテンプレートに{% csrf_token %}を追加することができ、テンプレートをレンダリングしている場合。フォームを使用せず、単にデータをポストするのであれば、上記のようにトークンを作成して、単純に値をデータとともにポストすることができます。テンプレートを使用してモバイルアプリのマークアップを作成していない場合は、csrf_exemptを使用します(サーバーに定期的にデータを送信するだけの場合)。

明らかに、投稿されたデータを処理するためのビューが必要ですが、一般的なビューを使用していても(urls.pyなどの)そのビューをラップしてcsrf_exempt

+1

Djangoドキュメント[CSRFでAJAXを処理する方法](https://docs.djangoproject.com/en/1.3/ref/contrib/csrf/#ajax)をご覧ください。基本的には、CSRFトークンをクッキーに入れ、JavaScriptがHTTPリクエストにコピーします。 –

+0

それは私が多かれ少なかれ示唆していたものです。私はこのアプローチを何度もajaxアプリケーションで使用していて、スムーズに動作します。 – John

関連する問題