保存登录凭据 Xcode
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/12350072/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Saving login credentials Xcode
提问by fadd
I am implementing an application, the first view is the login view. it contains 3 textfields Account name, Username and password. i want to let the application to save the login information in order not to let the user write them each time he/she opens the application. And to be deleted when he/she logs out.
我正在实现一个应用程序,第一个视图是登录视图。它包含 3 个文本字段帐户名、用户名和密码。我想让应用程序保存登录信息,以免用户每次打开应用程序时都编写它们。并在他/她注销时被删除。
how to do that? and how to read/write on a file?
怎么做?以及如何读/写文件?
Thankfully yours
谢天谢地
采纳答案by Vikas S Singh
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 is null.
logOut : 设置所有值为空。
回答by msk
Use key chain for storing login password. Below is the simple code
使用钥匙串存储登录密码。下面是简单的代码
To store:
储藏:
KeychainItemWrapper *keychain =
[[KeychainItemWrapper alloc] initWithIdentifier:@"MyAppLoginData" accessGroup:nil];
[keychain setObject:loginStr forKey:(id)kSecAttrAccount];
[keychain setObject:pwdStr forKey:(id)kSecValueData];
To query:
查询:
NSString *login = [keychain objectForKey:(id)kSecAttrAccount];
NSString *pwd = [keychain objectForKey:(id)kSecValueData];
To Delete:
删除:
[keychain resetKeychainItem];
You need to add KeychainItemWrapper.h and KeychainItemWrapper.m (here) in your project first.
您需要首先在您的项目中添加 KeychainItemWrapper.h 和 KeychainItemWrapper.m(此处)。
Another important aspects of using keychain to store data is
使用钥匙串存储数据的另一个重要方面是
- The data is persistent even after app uninstall-install
- The data can be shared across your apps (need to have same bundle seed id, read from here). Think of single sign on for all your apps.
- The data is removed only on Device Reset from settings.
- 即使在应用程序卸载-安装之后数据仍然存在
- 数据可以在您的应用程序之间共享(需要具有相同的捆绑种子 ID,从这里读取 )。想想所有应用程序的单点登录。
- 仅在从设置中重置设备时才会删除数据。
回答by Templar
回答by Paresh Navadiya
Check keychainServConceptsfor saving required data
检查keychainServConcepts以保存所需数据
Check STUtilsfor saving Username and password securely.
检查STUtils以安全地保存用户名和密码。
U can also use NSUserDefault to save data with key as userName and remove when required.
您还可以使用 NSUserDefault 将数据保存为用户名,并在需要时删除。