私は私のiPhoneアプリからのログイン(単純なユーザー名とパスワード)のために、私の同僚のサイトにフォームデータをPOSTしようとしています。しかし、投稿するにはCSRFトークンが必要です。私はこれに関する多くの研究を行ってきました.GETリクエストを使用してcsrftoken cookie
(私はここでそれを読んでいます:https://docs.djangoproject.com/en/dev/ref/contrib/csrf/)からこのトークンを得ることができます。問題は、私はこのGETリクエストと正確に何が関係しているのか分かりません。私はどこから手を出すのですか?ここで iOSでCSRFトークンを取得する方法は?
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];
が、私は完全に思える答えをいずれかを発見していません。通常は、AJAX関連の情報でのみ満たされている上記のリンクに私を誘導します。助けていただければ幸いです!
csrfトークンはクッキー内にあり、デフォルトでは同じセッションで同じビューに対して受信される 'csrftoken'があります。このCookieを取得するには、送信する前に別のリクエストを行う必要があります。 – SingleNegationElimination
この問題の解決策を見つけましたか? –
あなたのバディのウェブサイトにあるフォームには、フォームにトークンが含まれている必要があります。サイト上の任意のフォームからhtmlを解析できます。それ以外の場合は、サイトにcsrfトークンを表示するページを作成するように依頼してください。 – gcdev