保存登录凭据Xcode
我正在实现一个应用程序,第一个视图是登录视图。 它包含3个文本字段帐户名,用户名和密码。 我想让应用程序保存登录信息,以便每次打开应用程序时都不让用户写入。 并在他/她退出时被删除。
怎么做? 以及如何读/写文件?
谢天谢地
To Save: [[NSUserDefaults standardUserDefaults] setValue:AccountTxtField.text forKey:@"Account"]; [[NSUserDefaults standardUserDefaults] setValue:UserTxtField.text forKey:@"Username"]; [[NSUserDefaults standardUserDefaults] setValue:passwordTxtField.text forKey:@"password"]; [[NSUserDefaults standardUserDefaults] synchronize]; To Read: NSString * _Account = [[NSUserDefaults standardUserDefaults] stringForKey:@"Account"]; NSString * _UserName = [[NSUserDefaults standardUserDefaults] stringForKey:@"Username"]; NSString * _password = [[NSUserDefaults standardUserDefaults] stringForKey:@"password"];
logOut:set all value为null。
使用密钥链存储登录密码。 下面是简单的代码
储藏:
KeychainItemWrapper *keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"MyAppLoginData" accessGroup:nil]; [keychain setObject:loginStr forKey:(id)kSecAttrAccount]; [keychain setObject:pwdStr forKey:(id)kSecValueData];
要查询:
NSString *login = [keychain objectForKey:(id)kSecAttrAccount]; NSString *pwd = [keychain objectForKey:(id)kSecValueData];
删除:
[keychain resetKeychainItem];
您需要首先在项目中添加KeychainItemWrapper.h和KeychainItemWrapper.m( 此处 )。
使用钥匙串存储数据的另一个重要方面是
- 即使在app uninstall-install之后,数据也是持久的
- 数据可以在您的应用程序之间共享(需要具有相同的捆绑种子ID,请从此处阅读)。 想想所有应用的单点登录。
- 仅在设备重置时从设置中删除数据。
这种敏感数据通常存储在钥匙串中。 类似的问题在这里
检查keychainServConcepts以保存所需数据
检查STUtils以安全地保存用户名和密码。
您还可以使用NSUserDefault以key作为userName保存数据,并在需要时删除。