我们在符合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