2009-08-13 12 views
0

私のCocoaアプリケーションからRuby on Railsアプリケーションでモデルのインスタンスを作成するためにHTTP POSTを実行しようとしています。私はクライアント(Cocoa)とサーバー(Rails)の両方を書いているので、どちらの場所でも変更を加えることができます。にこのルートをRailsのように私は、テキスト/ XMLへのHTTP POSTのためのContent-Typeを設定することができたとき、私は偽造デスクトップクライアントからのマルチポスト/フォームデータからレールへの投稿

全てから守る使用する場合に必要とされる認証トークンに問題に実行しています

は大丈夫です認証トークンを必要としない適切なXMLハンドラ。モデルオブジェクトは作成され、リンクされ、適切に格納されます。甘い。

私は今、サーバーにファイルをアップロードしようとしています。これで私はmultipart/form-data Content-typeを使用する必要があります。私は認証トークンが検証しないので、この接続は失敗します。私はxml POSTを送信していないので、私は認証する必要があります。しかし、私はデスクトップクライアント上にあり、すてきなフォームヘルパーを使うことはできません。

この問題について適切な方法はありますか?

私のファイルアップロードHTTP POSTは、偽造からの保護を無効にするとうまく動作しますが、それは理想的な解決策ではありません。

おかげで、この周り ジェフ

答えて

0

一つの方法は、この特定のアップロードのためのあなたのコントローラ内の別々のアクションを作成することです。次に、そのコントローラで次のことを宣言できます。

もちろん、このアップロードアクションはリモート送信投稿に公開されます。しかし、あなたはそれをやろうとしているのですか?リモート送信の何か。したがって、リモート送信から保護したり、同時に使用することはできません。私はそれを見ていくつかの方法があります。

  • APIトークン。 アップロードAPIがデスクトップアプリで の使用のみを目的としている場合は、 トークンをデスクトップの アプリで配布し、コードでレール側で検証する必要があります。
  • のユーザーが自分のアプリを自分のapiに投稿できるようにする場合は、 にトークンをリクエストさせて、後でスパマーを除外することができます。
  • オープントークンレスの無料アクセスの場合は となりますので、ごみ箱 が届きます。

P.S.サイトにアカウントがある場合は、このアクションの基本認証を要求することもできます。

0

ちょっとソリューション、それがあなたのケースに働くかもしれない:

skip_before_filter :verify_authenticity_token, :only => :get_auth_token 

がトークン

はその後、XML呼び出しを通して、あなたのアプリに送り返す生成

、将来の参照のためにそのトークンを使用します。

+0

これは本質的に私がやったことですが、実際にはアップロードごとに認証トークンをプルダウンし、まだ検証が必要です。 –

関連する問題