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 logi
This kind of sensitive data is usually stored in keychain. Similar question here
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.
Another important aspects of using keychain to store data is
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.
Check keychainServConcepts for saving required data
Check STUtils for saving Username and password securely.
U can also use NSUserDefault to save data with key as userName and remove when required.