2014-05-08 58 views
0

我的iOS應用程序有這樣的問題。我使用AFNetworking與node.js(由express.js驅動)服務器上的REST API進行通信。AFNetworking永久保存在服務器上創建的cookie嗎?

我有2個端點,一個用於登錄,另一個用於註銷。當用戶登錄我創建服務器端中間件餅乾這樣的:

res.cookie(config.auth.cookieName, req.token, { 
    domain: config.domain, 
    maxAge: config.auth.tokenTtl * 60 * 1000, 
    httpOnly: true, 
    secure: config.auth.secure 
}); 

當用戶註銷我刪除它:

res.clearCookie(config.auth.cookieName, { domain: config.domain }); 

一切正常,除了我的iOS應用程序行爲異常但邏輯很簡單:根視圖控制器我向服務器發出請求,如果auth失敗,請執行segue登錄視圖控制器。

所以..我在模擬器中運行我的應用程序,登錄然後註銷 - 一切工作正常 - 應用程序segue帶我回去登錄。關閉模擬器。

但是!當我跑模擬器再次我要登錄頁面上(因爲我已經在以前的會議做註銷),而不是說我再次授權..

而且我想了解AFNetworking是否做未便錯誤..或服務器cookie ..

回答

0

在AFNetworking上使用POST和清除cookie時,曾經存在一個錯誤。不知道你使用的是什麼版本。我的猜測是它仍然存儲在AFNetworking中並在下一次請求時發送。

你有沒有試過清除在客戶端的餅乾

喜歡的東西(在AFNetworking?):

NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL: networkServerAddress]; 
for (NSHTTPCookie *cookie in cookies) 
{ 
    [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie]; 
}