我們在符合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
我們用一個鑰匙鏈服務的輔助,讓我們簡單地訪問如鑰匙扣NSUserDefaults的,與存儲的對象必須遵循NSCoding協議同樣的要求。
@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-05-01 15:50:01