Iphone 如何在iOS中获取CSRF令牌?

Iphone 如何在iOS中获取CSRF令牌?,iphone,ios,django,Iphone,Ios,Django,因此,我试图将表单数据发布到我同事的网站,以便从我的iPhone应用程序登录(简单的用户名和密码)。然而,似乎我需要一个CSRF令牌才能发布。我在这方面做了很多研究,通过使用GET请求从csrftoken cookie(我在这里读到:)获取这个令牌。问题是,我不知道如何处理这个GET请求?我从哪里来 以下是我的post请求的代码: NSURL *url = [NSURL URLWithString:SERVER_ADDRESS]; NSData* postData= //Some form da

因此,我试图将表单数据发布到我同事的网站,以便从我的iPhone应用程序登录(简单的用户名和密码)。然而,似乎我需要一个CSRF令牌才能发布。我在这方面做了很多研究,通过使用GET请求从
csrftoken cookie
(我在这里读到:)获取这个令牌。问题是,我不知道如何处理这个GET请求?我从哪里来

以下是我的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相关的信息。非常感谢您的帮助

正如评论中所指出的,您可以从朋友网站上包含表单的任何页面对其进行解析

如果您想要自己的模板,请让他在
/ios/

ios.html:

{% csrftoken %}
然后启动一个 您可以使用正则表达式解析令牌的值:

NSString *regex = @"csrfmiddlewaretoken\".*?\"\(.*?\)\"";
最后,您必须在以下HTTP POST请求上设置
X-CSRFToken
的值。

为了使用令牌登录(POST),当然您必须首先获得CSRF令牌,如您所说。如果您首先对登录页面执行GET调用(在后续发布之前),登录页面的结果将返回一个csrf_令牌,如果您使用浏览器(使用open developer tools窗格),您可以查看该令牌,并查看响应内容下的网络窗格以查看服务器设置的csrftoken cookie。就我而言:

Set-Cookie:csrftoken=PgQEgY3LAynbVeWRIzXoo2VFRLfd8Uqt; expires=Fri, 10-Nov-2017 18:59:54 GMT; Max-Age=31449600; Path=/; secure
从响应中解析此消息后,设置如下标题:

X-CSRFToken: "PgQEgY3LAynbVeWRIzXoo2VFRLfd8Uqt" 

在您的帖子中输入登录/密码信息。HTH

csrf令牌位于cookie中,默认情况下,该cookie将在同一会话中为同一视图接收。在发布之前,您需要执行另一个请求以获取此cookie。您找到此问题的解决方案了吗?您好友网站上的任何表单都应该在表单中包含令牌。您可以从站点上的任何表单解析html。否则,让他在网站上创建一个页面,只显示一个csrf令牌。抓取cookie怎么样?