0

我正在使用 Swagger 生成的 Swift 客户端,用于NSURLCredentials向服务器进行身份验证。我正在使用持久性类型.Permanent 我的应用程序在后台与服务器通信并且工作正常,除非我锁定手机(我在日志中看到 401 错误)。我相信NSURLCredential手机锁定时无法访问钥匙串。我遇到了一些关于使用kSecAttrAccessibleAfterFirstUnlock. 我一直无法弄清楚如何使用NSURLCredential. 有谁知道这是否以及如何配置?

4

1 回答 1

0

是的,这正是正在发生的事情,很有可能。你有几个选择:

  • 删除底层钥匙串项目并重新创建它,指定在设备解锁时应该可以访问它。您根本不需要使用NSURLCredential这种方法。只需使用 Keychain Services API 创建一个 Internet 密码项,凭证存储就会自动获取它。
  • 将凭证数据保存在内存中,并URLSession:task:didReceiveChallenge:completionHandler:在会话委托中实现委托方法(如果您正在使用该 API,则实现 NSURLConnection 的等效方法)以在询问时提供凭证。
于 2016-09-08T06:26:09.523 回答