PHP サーバーで 2 レッグ oAuth を使用するアプリがあります。現在、php://input ストリームを解析して、署名パラメーターと生の投稿データを取得します。ただし、php.net によると、マルチパート フォーム データで入力ストリームを使用することはできないため、iPhone からサーバーに画像を送信しようとすると、php://input ストリームが空になります。
ここで私の質問は、Oath ルールの初心者であり、そうでないものです。
入力ストリームと $POST スーパーグローバルからの読み取りを使用する必要がありますか? 署名と画像を同じ通話で送信できますか
NSString *boundary = @"---------------------------14737809831466499882746641449";
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
[postData appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[postData appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n", @"signature"] dataUsingEncoding:NSUTF8StringEncoding]];
[postData appendData:[postVars dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES]];
[postData appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[postData appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[postData appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"uploadedfile\"; filename=\"tester.png\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[postData appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[postData appendData:[NSData dataWithData:imageData]];
[postData appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
認証ヘッダーに署名パラメーターを設定するためのいくつかの提案を見てきました。投稿本文で署名を送信するか、認証ヘッダーを設定するのは正しいですか? また、oAuthを使用してアップロードおよび画像を作成する方法について、私は道を外れていますか? 2 回の通話である必要がありますか、それとも同じ通話で署名と画像を行うことができますか?
助けてくれてありがとう。これを使用して iPhone からサーバーにデータを送信するため、両側に書き込みましたが、oAuth のベスト プラクティスに従いたいと考えています。