Phonegap App使用身份验证与Rails 3 App进行通信

时间:2012-08-10 16:47:46

标签: ruby-on-rails cordova devise

我正在尝试使用Phonegap编写一个iOS应用程序来与我的Rails3应用程序进行通信。我无法弄清楚如何处理身份验证。我在我的Rails应用程序中使用Devise / Warden。

我可以通过ajax在我的iOS应用程序中成功登录,但后来的电话给我一个“未经授权”。似乎会话cookie未在我的iOS应用程序中设置。

如何让我的iOS应用程序了解我的rails认证会话?

1 个答案:

答案 0 :(得分:1)

答案是双重的。

首先我必须在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应用程序中将它添加到我的应用程序控制器中:

def protect_against_forgery?
  unless request.format.json?
    super
  end
end