Objective c 如何通过每个请求获取刷新令牌?

Objective c 如何通过每个请求获取刷新令牌?,objective-c,oauth-2.0,afnetworking-3,Objective C,Oauth 2.0,Afnetworking 3,我正在通过服务器与.NETAPI通信,现在在api中,他们正在使用oAuth2。因此,在ios中,我必须在每次发出请求时获取刷新令牌,在另一个请求中,我必须传递该令牌。它就像“承载令牌”。我在我的应用程序中使用AFNetworking。有什么办法让它工作吗?如果您使用AFHTTPSessionManager类发出请求,您可以在发出http请求之前执行以下操作: AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; [man

我正在通过服务器与.NETAPI通信,现在在api中,他们正在使用oAuth2。因此,在ios中,我必须在每次发出请求时获取刷新令牌,在另一个请求中,我必须传递该令牌。它就像“承载令牌”。我在我的应用程序中使用AFNetworking。有什么办法让它工作吗?

如果您使用
AFHTTPSessionManager
类发出请求,您可以在发出http请求之前执行以下操作:

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
[manager.requestSerializer setValue:@"Bearer YOUR_TOKEN" forHTTPHeaderField:@"Authorization"];

如果您正在使用
AFHTTPSessionManager
类发出请求,则可以在发出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,它更易于管理和灵活。

在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,它更易于管理和灵活。

该请求是否会在我从API获得响应的同时提供刷新令牌?我认为您需要执行单独的请求,一个请求获取令牌,还有一个需要在校长处用这个代币啊这是我不想要的。。。我正在从服务器递归请求。。感谢您的帮助。该请求是否会与我的api响应同时提供刷新令牌?我认为您需要执行单独的请求,一个请求获取令牌,另一个请求将需要在Headerah使用此令牌这是我不想要的。。。我正在从服务器递归请求。。谢谢你的帮助。