因此,我試圖將表單數據發佈到我的同事的網站,以便從我的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