2012-08-10 97 views
1

我正在嘗試使用Phonegap編寫iOS應用程序與我的Rails3應用程序進行通信。我無法弄清楚如何處理認證。我在Rails應用程序中使用Devise/Warden。Phonegap應用程序使用身份驗證與Rails 3應用程序通信

我能夠通過ajax在我的iOS應用程序成功登錄,但隨後的電話給我一個「未經授權」。看來會話cookie沒有在我的iOS應用程序中設置。

如何讓我的iOS應用程序知道我的rails認證會話?

+0

你想出什麼?我對這個問題的答案也很感興趣。 – botbot 2012-10-19 06:38:11

回答

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 
+0

哪裏添加了第一行代碼?我知道這是一個通過ajax發送的塊,只是不知道它會去哪裏...你使用phonegap嗎? – botbot 2012-11-28 08:07:38

+0

第一行被添加到ajax請求中。我使用phonegap和jquery。我編輯了我的帖子。 – jasonlfunk 2012-11-28 20:24:23

+0

謝謝,我upvoted你。所以看起來你正在重寫protect_against_forgery以允許請求進入......看起來它似乎破壞了該方法的目的,但不是嗎?這是否允許cookie被設置?你使用什麼認證?設計? – botbot 2012-11-28 21:22:56

相關問題