2016-06-28 17 views
0

我正在使用Swagger生成的Swift客戶端,它使用NSURLCredentials來與服務器進行身份驗證。我正在使用持久性類型.Permanent 我的應用程序在後臺與服務器通信並且工作正常,除了當我鎖定手機時(我在日誌中看到401錯誤)。我相信NSURLCredential無法在手機鎖定時訪問鑰匙串。 我遇到一些職位,談論使用kSecAttrAccessibleAfterFirstUnlock啓用鑰匙串訪問。我一直無法弄清楚如何用NSURLCredential來做到這一點。有誰知道是否以及如何配置?如何在iOS設備被鎖定時啓用對NSURLCredentials的訪問?

回答

0

是的,這正是發生的情況。您有幾個選項:

  • 刪除底層的鑰匙串項目並重新創建它,指定它在設備解鎖時應該可訪問。這種方法根本不需要使用NSURLCredential。只需使用Keychain Services API創建一個互聯網密碼項目,證書存儲應該自動提取它。
  • 將憑證數據保留在內存中,並在會話委託(或等效的NSURLConnection方法(如果使用該API)中實現URLSession:task:didReceiveChallenge:completionHandler:委託方法)在提問時提供憑證。
相關問題