我如何获得每个请求的刷新令牌?
how do i get refresh token with each request?
我正在通过服务器与 .net api 通信,现在 api 他们正在使用 oAuth2。因此,在 ios 中,我每次发出请求时都必须获取刷新令牌,而在另一个请求中,我必须传递此令牌。就像 "bearer TOKEN"。我在我的应用程序中使用 AFNetworking。有什么想法让这个东西工作吗?
如果您使用 AFHTTPSessionManager
class 来发出请求,您可以在发出 http 请求之前执行以下操作:
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
[manager.requestSerializer setValue:@"Bearer YOUR_TOKEN" forHTTPHeaderField:@"Authorization"];
在 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,这样更易于管理和灵活。
我正在通过服务器与 .net api 通信,现在 api 他们正在使用 oAuth2。因此,在 ios 中,我每次发出请求时都必须获取刷新令牌,而在另一个请求中,我必须传递此令牌。就像 "bearer TOKEN"。我在我的应用程序中使用 AFNetworking。有什么想法让这个东西工作吗?
如果您使用 AFHTTPSessionManager
class 来发出请求,您可以在发出 http 请求之前执行以下操作:
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
[manager.requestSerializer setValue:@"Bearer YOUR_TOKEN" forHTTPHeaderField:@"Authorization"];
在 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,这样更易于管理和灵活。