1

OAuth を使用して Web API にアクセスするには、RestKit を使用します。RestKit doc raecommendations で:

iOS キーチェーンまたはその他の安全なストレージ方法を使用して、access_token、refresh_token、clientId、および clientSecret を保持することを強くお勧めします。

iOS Keychainシークレット トークンを保存するにはどうすればよいですか?

更新: この質問は反対票です。おそらく私は私の質問を十分に明確にしませんでした。iOS キーチェーンと API があることは知っていました。私の質問はtoken、アプリが出荷される前に、プレーンテキストバージョンを他の場所 (コードまたは plist) に保存せずに、(iOS キーチェーンまたはその他の暗号化ライブラリを使用して) 秘密の場所に保存する方法です。ユーザーが入力することを想定していないAPIトークンであるため、そもそもトークンを初期化するにはどうすればよいですか。

4

1 に答える 1

1

NSCoding プロトコルに準拠するトークン クラス内にさまざまなコンポーネント (accessToken、refreshToken など) を格納します。次に、オブジェクトをアーカイブし、キーチェーンに文字列として保存します。

TokenModel プロトコルは次のようになります。

@protocol TokenModel <NSCoding, NSObject>

@property(nonatomic, strong, readonly) NSString *accessToken;
@property(nonatomic, strong, readonly) NSDate *expirationDate;
@property(nonatomic, assign, readonly) NSTimeInterval expiresIn;
@property(nonatomic, strong, readonly) NSString *refreshToken;
@property(nonatomic, strong, readonly) NSString *tokenType;

- (BOOL)isAccessTokenExpired;

@end

格納されたオブジェクトが NSCoding プロトコルに準拠する必要があるという同じ要件で、NSUserDefaults と同じように簡単にキーチェーンにアクセスできるようにするキーチェーン サービス ヘルパーを使用します。

@protocol KeychainService <NSObject>

- (id)objectForKey:(id)key error:(NSError * __autoreleasing *)error;
- (BOOL)setObject:(id)object forKey:(id)key error:(NSError * __autoreleasing *)error;

- (BOOL)removeObjectForKey:(id)key error:(NSError * __autoreleasing *)error;

@end
于 2012-09-28T23:42:33.813 に答える