我正在嘗試使用Phonegap編寫iOS應用程序與我的Rails3應用程序進行通信。我無法弄清楚如何處理認證。我在Rails應用程序中使用Devise/Warden。Phonegap應用程序使用身份驗證與Rails 3應用程序通信
我能夠通過ajax在我的iOS應用程序成功登錄,但隨後的電話給我一個「未經授權」。看來會話cookie沒有在我的iOS應用程序中設置。
如何讓我的iOS應用程序知道我的rails認證會話?
我正在嘗試使用Phonegap編寫iOS應用程序與我的Rails3應用程序進行通信。我無法弄清楚如何處理認證。我在Rails應用程序中使用Devise/Warden。Phonegap應用程序使用身份驗證與Rails 3應用程序通信
我能夠通過ajax在我的iOS應用程序成功登錄,但隨後的電話給我一個「未經授權」。看來會話cookie沒有在我的iOS應用程序中設置。
如何讓我的iOS應用程序知道我的rails認證會話?
答案是兩倍。
首先,我不得不加入到我的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
哪裏添加了第一行代碼?我知道這是一個通過ajax發送的塊,只是不知道它會去哪裏...你使用phonegap嗎? – botbot 2012-11-28 08:07:38
第一行被添加到ajax請求中。我使用phonegap和jquery。我編輯了我的帖子。 – jasonlfunk 2012-11-28 20:24:23
謝謝,我upvoted你。所以看起來你正在重寫protect_against_forgery以允許請求進入......看起來它似乎破壞了該方法的目的,但不是嗎?這是否允許cookie被設置?你使用什麼認證?設計? – botbot 2012-11-28 21:22:56
你想出什麼?我對這個問題的答案也很感興趣。 – botbot 2012-10-19 06:38:11