帮助iphone会话登录

时间:2011-05-07 05:29:23

标签: iphone objective-c

我在许多应用中看到,您只需要登录一次应用,然后在下次打开应用时,您无需再次输入用户名和密码。我怎样才能在SFHFKeychainUtils的帮助下做到这一点?

2 个答案:

答案 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"];