Appleが提供するKeychainラッパークラスを使用しています。私のアプリケーションでは、ログインしたユーザーのユーザー名とパスワードを保存して取得したいと思います。アプリを再度起動すると、キーチェーン内のログインクレデンシャルを確認し、ユーザーをアプリにアクセスさせる必要があります(自動ログイン)。いくつかのサンプルコードを試しました。何もうまくいきませんでした。これを行う手順を手伝ってください。
ありがとう。
Appleが提供するKeychainラッパークラスを使用しています。私のアプリケーションでは、ログインしたユーザーのユーザー名とパスワードを保存して取得したいと思います。アプリを再度起動すると、キーチェーン内のログインクレデンシャルを確認し、ユーザーをアプリにアクセスさせる必要があります(自動ログイン)。いくつかのサンプルコードを試しました。何もうまくいきませんでした。これを行う手順を手伝ってください。
ありがとう。
PDKeyChainBindingを使用する
使用方法は次のとおりです。
PDKeychainBindings *bindings = [PDKeychainBindings sharedKeychainBindings];
[bindings setObject:@"myuser" forKey:@"username"];
[bindings setObject:@"kmypass" forKey:@"password"];
//How to retrieve
NSString *username = [bindings objectForKey:@"username"];
NSString *password = [bindings objectForKey:@"password"];
キーチェーン アクセスを使用して、資格情報をより安全に保存できます。そのためには、以下のガイドとサンプルに従ってください。
1)Keychain Services Programming Guide
Apple によるこのドキュメントで、必要なものはすべて見つかりました。
Apple によるこのサンプル コードは、キーチェーン値を追加、削除、および更新する方法を示しています。
これに問題がある場合はお知らせください。これがあなたのお役に立てば幸いです。
#import "SFHFKeychainUtils.h"
#define KEYCHAIN_SERVICE_KEY @"MyKey"
#define KEYCHAIN_ID @"agsfs46edt3g3jd38jh3g3g3g3g38f3dkiuytr453"
#define KEYCHAIN_PSD @"a1s2s3d4edt3g3jd38jh3g3g3g3g38f3dfgffgdd"
//チェックする
NSError *error = nil;
NSString *password = [SFHFKeychainUtils getPasswordForUsername:KEYCHAIN_ID andServiceName:KEYCHAIN_SERVICE_KEY error:&error];
if ([password isEqualToString:KEYCHAIN_PSD])
return YES;
//保存する
NSError *error = nil;
[SFHFKeychainUtils storeUsername:KEYCHAIN_ID andPassword:KEYCHAIN_PSD forServiceName:KEYCHAIN_SERVICE_KEY updateExisting:YES error:&error];
ACSimpleKeychainを見てください。キーチェーンの単純な抽象化を提供して、パスワードを安全に簡単に保存できるようにします。
たとえば、ユーザー名とパスワードを保存するには:
if ([keychain storeUsername:@"user1" password:@"password" identifier:@"account1" forService:@"twitter"])
{
NSLog(@"SAVED credentials for username 'user1' credentials identifier 'account1'");
}
パスワードの取得:
NSDictionary *credentials = [keychain credentialsForUsername:@"user1" service:@"twitter"];
NSLog(@"CREDENTIALS: service: %@, identifier: %@, username: %@, password: %@",
[credentials valueForKey:ACKeychainService],
[credentials valueForKey:ACKeychainIdentifier],
[credentials valueForKey:ACKeychainUsername],
[credentials valueForKey:ACKeychainPassword]);