4

我在哪里可以找到使用sskeychain存储和检索用户名和密码以及在 UIWebView 中进行基本身份验证的详细教程?其次,就基于 Web 的应用程序存储和使用身份验证所需的方法而言,我是否走在正确的轨道上?(见下面的解释。)

我发现了一些使用不同方法的教程:

根据以下其他 SO 问题的建议,建议使用 sskeychain 以便更轻松地使用钥匙串来存储身份验证参数。

我的计划是按照建议将用户名和密码本地存储在钥匙串中的设备上,并使用基本身份验证通过 UIWebView 连接到我的 PHP 代码。有经验的 iOS 开发人员推荐的关于用户身份验证主题的 xcode/Obj-C 新手的良好分步教程吗?

Apple 文档似乎没有什么帮助。它要么是带有简单销售术语的页面,要么是对方法和参数的头条式描述,没有很多有用的示例。

更新:

我最终只使用 NSUserDefaults 在本地存储用户名和密码,并使用 AFNetworking 库进行身份验证。如果这些不明智,我会欢迎提供更好方法指导的答案。

4

3 回答 3

13

使用AFNetworking进行身份验证和调用服务器非常棒!但我强烈建议您不要将凭据(用户名和密码)存储在 中NSUserDefaults,因为内容以纯文本形式存储在 plist 中,只需将设备插入 Mac 即可读取。我建议您查看这些 其他 问题一个著名案例的精彩帖子,以获取有关该主题的更多详细信息。

你是对的Keychain,使用SSKeychain既简单又快速。您可以找到这个关于如何使用 SSKeychain 在本地存储凭据的好示例。

// Store credentials in Keychain
[SSKeychain setPassword:@"thePassword"
             forService:@"com.yourCompany.yourApp"
                account:@"theUserName"];

// Retrieve credentials from Keychain
NSString *password = [SSKeychain passwordForService:@"com.yourCompany.yourApp"
                                            account:@"theUserName"];
于 2013-08-28T10:48:04.943 回答
3

如果你想做基本的身份验证,你最好使用像 AFNetworking 这样的网络服务。他们都是您创建网络客户端,传递用户名/密码组合,其余的由他们负责。

此链接显示您需要调用的确切方法调用: http ://engineering.gowalla.com/AFNetworking/Classes/AFHTTPClient.html#//api/name/setAuthorizationHeaderWithUsername:password :

还有一个大型社区和大量开发人员在所有类型的 iOS 项目中使用 AFNetworking 的示例。

于 2012-07-23T17:35:21.757 回答
2

我会建议你使用

密码箱

它重量轻,可与 ARC 配合使用且易于使用。

于 2013-01-02T16:18:17.253 回答