0
我有一個場景,我需要再次安靜刷新身份驗證令牌(relogin),如果它過期了,當我訪問其他API,但我很難考慮如何編碼而不創建多餘即使流程類似,也爲每個API編碼。iOS運行兩個異步方法,如果失敗
當用戶已經過期的身份驗證令牌>電話支付API A(返回401未授權)>再次重新登錄>電話支付API A(成功運行)
我有包裝在我的腦海裏調用API支付有難第二次用較少的代碼,並沒有陷入無限循環陷阱。有沒有任何方法可用於NSNotification中心這種情況?
注:我需要在這個格式使用API從AFNetworkinglogin
- (NSURLSessionDataTask *)getApiA:(CallbackBlock)block{
CallbackBlock _block = [block copy];
NSString *urlString = [[NSURL URLWithString:GET_API_A_URL relativeToURL:[NSURL URLWithString:HOME_URL]] absoluteString];
return [self GET:urlString parameters:nil success:^(NSURLSessionDataTask *task, id responseObject) {
NSDictionary *response = (NSDictionary *)responseObject;
BLOCK_SAFE_RUN(block, response, nil, task);
} failure:^(NSURLSessionDataTask *task, NSError *error) {
if([self unauthorizedAccess:task]){ //401
***//call Login once again > run getApiA again***
}else if ([self forbiddenAccess:task]){ //403
}
BLOCK_SAFE_RUN(block, nil, error, task);
}];
}