我正在使用 Swagger 生成的 Swift 客户端,用于NSURLCredentials
向服务器进行身份验证。我正在使用持久性类型.Permanent
我的应用程序在后台与服务器通信并且工作正常,除非我锁定手机(我在日志中看到 401 错误)。我相信NSURLCredential
手机锁定时无法访问钥匙串。我遇到了一些关于使用kSecAttrAccessibleAfterFirstUnlock
. 我一直无法弄清楚如何使用NSURLCredential
. 有谁知道这是否以及如何配置?
问问题
131 次
1 回答
0
是的,这正是正在发生的事情,很有可能。你有几个选择:
- 删除底层钥匙串项目并重新创建它,指定在设备解锁时应该可以访问它。您根本不需要使用
NSURLCredential
这种方法。只需使用 Keychain Services API 创建一个 Internet 密码项,凭证存储就会自动获取它。 - 将凭证数据保存在内存中,并
URLSession:task:didReceiveChallenge:completionHandler:
在会话委托中实现委托方法(如果您正在使用该 API,则实现 NSURLConnection 的等效方法)以在询问时提供凭证。
于 2016-09-08T06:26:09.523 回答