Rails3 アプリと通信するために Phonegap を使用して iOS アプリを作成しようとしています。認証の処理方法がわかりません。Rails アプリで Devise/Warden を使用しています。
ajax 経由で iOS アプリに正常にログインできますが、その後の呼び出しで「Unauthorized」と表示されます。iOS アプリでセッション Cookie が設定されていないようです。
Rails で認証されたセッションを iOS アプリに認識させるにはどうすればよいですか?
Rails3 アプリと通信するために Phonegap を使用して iOS アプリを作成しようとしています。認証の処理方法がわかりません。Rails アプリで Devise/Warden を使用しています。
ajax 経由で iOS アプリに正常にログインできますが、その後の呼び出しで「Unauthorized」と表示されます。iOS アプリでセッション Cookie が設定されていないようです。
Rails で認証されたセッションを iOS アプリに認識させるにはどうすればよいですか?
答えは 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