App2
ポート 4000 でリッスンする Rails アプリケーションとApp1
、ポート 3000 でリッスンする別の Rails アプリケーションApp2
があります。認証されたユーザーのみが使用できるカスタム API 呼び出しが定義されています。
HTTPartyApp1
を使用して次のように API リクエストを作成するrake タスクが実行されます。
response = HTTParty.post("http://localhost:4000/users/sign_in",
:basic_auth => {:user => {:email => "<User email>", :password => "<Password>"}},
:headers => { 'X-Requested-With' => 'XMLHttpRequest',
'User-Agent' => 'Mozilla/5.0 (iPhone; U; ru; CPU iPhone OS 4_2_1 like Mac OS X; ru) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148a Safari/6533.18.5',
'ContentType' => 'application/json' })
の出力はresponse.body
、ユーザーが認証されていないことを示しています!
エラーを分析すると、開発ログに次のように表示されます。
WARNING: Can't verify CSRF token authenticity
Rake タスクからの POST リクエストで CSRF トークンを送信する方法を教えてください。