1

我正在使用 RestKit、RKObjectManager 和服务器端设计进行身份验证。我需要在每个请求上发送我的身份验证令牌。有没有一种方法可以轻松地为所有请求添加它?

目前,对于 GET,我正在执行以下操作:

NSString *path = [NSString stringWithFormat:@"/%@/%i", [self pluralizedName], identifier];
path = [path stringByAppendingQueryParameters:[self appendAuthenticationToken:params]];
[[RKObjectManager sharedManager] loadObjectsAtResourcePath:path delegate:delegate];

这很好用。但是,对于 PUT,我尝试了以下方法:

[[RKObjectManager sharedManager] putObject:resource usingBlock:^(RKObjectLoader *loader) {
    loader.delegate = delegate;
    loader.params = [RKParams paramsWithDictionary:[self appendAuthenticationToken:params]];
}];

这正确发送了我的身份验证令牌,但服务器没有收到我试图更新的资源。有谁知道这样做的正确方法?

4

2 回答 2

0

这是我第一次看到将身份验证令牌附加到这样的路径。您不能将其添加到标题中吗?我有一种感觉,这是更标准的做法。

如果您这样做,您可以在您的 RKObjectManager 提供的客户端上使用 [RKClient setValue:forHTTPHeaderField:]。

于 2012-07-13T06:55:50.200 回答
0

在 RestKit .2 中,您可以将这个问题解决为:

 [[[RKObjectManager sharedManager] HTTPClient] setAuthorizationHeaderWithToken:self.user.token];
于 2013-05-01T01:43:45.737 回答