我如何获得每个请求的刷新令牌?

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,这样更易​​于管理和灵活。