首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用AFNetworking (1.3.3) AFHTTPClient和CSRF标记

使用AFNetworking (1.3.3) AFHTTPClient和CSRF标记
EN

Stack Overflow用户
提问于 2014-01-01 04:41:30
回答 2查看 755关注 0票数 1

我创建了一个Django子类作为我朋友的AFHTTPClient服务器的web服务接口。除了'DELETE‘和'POST’请求之外,我们取得了巨大的成功。他的服务器需要一个CSRF令牌,但我不知道如何获取该信息或在我的AFHTTPClient中使用该信息。当我的应用程序登录时,Django服务器当前会生成一个CSRF (我相信在标题中)。

执行'DELETE‘或'POST’的失败尝试会从他的服务器生成以下JSON响应:"CSRF失败: CSRF令牌丢失或不正确。“

最后,我的问题是:如何使用AFNetworking (特别是AFHTTPClient)管理CSRF令牌?

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2014-01-01 06:23:59

CSRF令牌作为cookie随每个HTTP响应一起发送。您需要将它与每个POST/PUT/…一起发回请求,就像对X-CSRFToken请求所做的那样。另请参见the official documentation

票数 0
EN

Stack Overflow用户

发布于 2014-08-21 04:33:01

您可以从cookies中获取csrf,如下所示:

+(NSString* ) getCSRFFromCookie{

代码语言:javascript
复制
NSArray* cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[NSURL URLWithString:API_SERVER_URL]];
NSLog(@"cookie csrf %@",    [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]);

NSString* strCookieValue=@"";
for(NSHTTPCookie* cookie in cookies) {
      if([cookie.name isEqualToString:@"csrftoken"])
        return cookie.value;
}

return strCookieValue;

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20862976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档