我在许多应用中看到,您只需要登录一次应用,然后在下次打开应用时,您无需再次输入用户名和密码。我怎样才能在SFHFKeychainUtils的帮助下做到这一点?
答案 0 :(得分:1)
你几乎已经回答了你的问题。您可以使用SFHFKeychainUtils包装器将凭据存储在应用程序的Keychain中。当应用程序加载时,它会检查是否有密码。如果没有,请提示用户登录并存储用户名&相应的密码。
// Application Loads...
NSUserDefaults *standardDefaults = [NSUserDefaults standardUserDefaults];
NSString *username = [standardDefaults stringForKey:@"kApplicationUserNameKey"];
if (username) {
NSError *error = nil;
NSString *password = [SFHFKeychainUtils getPasswordForUsername:username andServiceName:@"com.company.app" error:&error];
// Check password...
} else {
// No username. Prompt the user to enter username & password and store it
username = @"userEnteredUsername";
NSString *password = @"userEnteredPassword";
[standardDefaults setString:username forKey:@"kApplicationUserName"];
NSError *error = nil;
BOOL storeResult = [SFHFKeychainUtils storeUsername:username andPassword:password forServiceName:@"com.company.app" updateExisting:YES error:&error];
}
这显然是不完整的,没有以适当的方式组织,但你应该能够理解基本流程。
答案 1 :(得分:0)
您可以将NSUserDefault用于此目的。
[[NSUserDefaults standardUserDefaults] setObject:username forKey:@"username"];
[[NSUserDefaults standardUserDefaults] setObject:password forKey:@"password"];
[[NSUserDefaults standardUserDefaults] synchronize];
下次用户打开您的应用时,您只需获取此信息:
NSString *username = [[NSUserDefaults standardUserDefaults] stringForKey:@"username"];
NSString *password = [[NSUserDefaults standardUserDefaults] stringForKey:@"password"];