1

Rails3 アプリと通信するために Phonegap を使用して iOS アプリを作成しようとしています。認証の処理方法がわかりません。Rails アプリで Devise/Warden を使用しています。

ajax 経由で iOS アプリに正常にログインできますが、その後の呼び出しで「Unauthorized」と表示されます。iOS アプリでセッション Cookie が設定されていないようです。

Rails で認証されたセッションを iOS アプリに認識させるにはどうすればよいですか?

4

1 に答える 1

1

答えは 2 倍でした。

最初に、これを iOS アプリの ajax リクエストに追加する必要がありました。

xhrFields: {
  withCredentials: true
}

のように...

$.ajax({
    url: ....,
    type: "GET",
    xhrFields: {
        withCredentials: true
    },
    complete: hideLoader,
    error: function(xhr,txt,err) {
        // you can't get back anyways
        window.location.hash = "";
    },
    success: function(data,status,res) {
        window.location.hash = "";
    }
}); 

次に、これを Rails アプリの Application Controller に追加する必要がありました。

def protect_against_forgery?
  unless request.format.json?
    super
  end
end
于 2012-08-10T17:10:19.393 に答える