iPhone : Plist, SQLite 또는 쿠키에 사용자 데이터를 저장 하시겠습니까?
문제
내 앱 (예 : 대부분)은 많은 원격 서비스를 활용할 것입니다 ... 따라서 사용자가 자신을 인증하면 사용자 이름과 비밀번호를 저장할 필요가 없으므로 사용자 이름과 비밀번호를 저장해야합니다.앱 전체를 모두 인증합니다.
이 사용자 데이터를 저장할 수있는 가장 좋거나 가장 빠른 위치는 어디에 있습니까?
해결책
사용자 이름과 서버 URL을 NSUSERDEFAULTS로 저장할 수 있지만 암호를 저장하는 경우 키 체인 서비스가 가장 좋은 아이디어입니다.그것은 C 기반 보안 프레임 워크의 일부입니다. 훌륭한 래퍼 클래스 sfhfkeychainutils, objective-c api를 제공합니다.
저장 :
NSString *username = @"myname";
NSString *password = @"mypassword";
NSURL *serverURL = [NSURL URLWithString:@"http://www.google.com"];
[SFHFKeychainUtils storeUsername:username andPassword:password forServiceName:[serverURL absoluteString] updateExisting:YES error:&error]
.
복원하려면
NSString *passwordFromKeychain = [SFHFKeychainUtils getPasswordForUsername:username andServiceName:[serverURL absoluteString] error:&error];
. 다른 팁
nsuserdefaults
다음과 같이 저장 :
[[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"];
. 안전하지 않은 파일 (사용자 기본값)에 보안 데이터를 저장하는 것은 일반적으로 좋은 아이디어가 아닙니다.중요한 로그인 정보를 암호화하는 Keychain 서비스를 살펴보십시오.
제휴하지 않습니다 StackOverflow