Я общаюсь с .net api над сервером, и теперь в api они используют oAuth2. Поэтому в ios я должен получать токен обновления каждый раз, когда я делаю запрос, и в другом запросе мне нужно передать этот токен. Это похоже на «носитель TOKEN». Я использую AFNetworking в своем приложении. Любая идея заставить эту работу работать ?.Как я могу обновить токен с каждым запросом?
0
A
ответ
1
В AFNetworking3 вы будете использовать запрос HEAD, для получения токена обновления. И затем оставьте свой фактический запрос на блок успеха.
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
NSURLSessionDataTask *dataTask = [manager dataTaskWithHTTPMethod:@"HEAD" URLString:URLString parameters:parameters headerFields:headerFields success:^(NSURLSessionDataTask *task, __unused id responseObject) {
if (success) {
success(task);
// on success block you can fire your final API with below refresh token
[manager.requestSerializer setValue:@"Bearer RRFRESH_TOKEN" forHTTPHeaderField:@"Authorization"];
}
} failure:failure];
[dataTask resume];
Вы также создаете рабочий объект для выполнения обоих API, которые более управляемы и гибки.
1
Если вы используете AFHTTPSessionManager
класс, чтобы сделать вас запросы, вы можете сделать следующее, прежде чем сделать запрос HTTP:
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
[manager.requestSerializer setValue:@"Bearer YOUR_TOKEN" forHTTPHeaderField:@"Authorization"];
Этот запрос даст токен обновления в то же время с моим ответом от api? –
Я думаю, вам нужно выполнить отдельные запросы, один для получения токена, а другой, который должен будет использовать этот токен в заголовке –
aahh, что я не хочу ... i 'рекурсивно запрашивает с сервера .. между спасибо за Помогите. –