因此,我试图将表单数据发布到我的同事的网站,以便从我的iPhone应用程序登录(简单的用户名和密码)。但是,似乎我需要一个CSRF令牌才能发布。我已经做了大量的研究,并从我可以从csrftoken cookie
(我在这里阅读:https://docs.djangoproject.com/en/dev/ref/contrib/csrf/)中使用GET请求获得该令牌。问题是,我不知道这个GET请求究竟做了什么?我从哪里得到?如何在iOS中获取CSRF令牌?
这是迄今为止我POST请求的代码:
NSURL *url = [NSURL URLWithString:SERVER_ADDRESS];
NSData* postData= //Some form data
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:[NSString stringWithFormat:@"%d", postData.length] forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
[request addValue:token forHTTPHeaderField:@"X-CSRFToken"]; //Where do I get this token from
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request
delegate:self];
[connection start];
我知道有很多类似的帖子这个StackOverflow上的,但我没有用,这似乎完全回答中发现的任何。通常它只是引导我到上面的链接,其中只填充了AJAX相关信息。帮助将非常感谢!
csrf标记位于cookie中,默认情况下'csrftoken'将在同一会话中的相同视图中接收。在发布信息以获取此Cookie之前,您需要做另一个请求。 – SingleNegationElimination
您是否找到解决此问题的解决方案? –
您好友网站上的任何表单都应在表单中包含令牌。您可以从网站上的任何表单解析html。否则,请他在仅显示csrf标记的网站上创建一个页面。 – gcdev