2012-04-26 3 views
0

私はクライアント(iPhone)とサーバー(PHP)という2つの側面を持つアプリケーションを構築しています。 httpsを使用した通信。携帯電話は4SQアクセストークンを取得します。次に、そのトークンをサーバーに送信し、サーバーはそれを使用して4SQ API呼び出しを行います。私の質問は、このトークンを送る方法です。HTTP認証ヘッダーに四角形トークンを渡す。出来ますか?

私の考えは、HTTP認証要求のヘッダーにトークンを含めることでしたが、基本/ダイジェスト認証について読んだ後は、その方法ではないと思われます。実際、4SQ APIへの呼び出しではなく、認証ヘッダ、または任意の他の場所でトークンを置くのリクエストパラメータ

oauth_token = access_tokenは

を使用して行われます。それには理由があると確信していますが、私はそれを見つけることができません。

次に、どのオプションが最適ですか? 4SQが

  • 電話が(種類OH認証がある?)
  • 認証ヘッダ内の任意の他の方法をPHPサーバにトークンを送信しないよう

    • 電話機は、リクエストパラメータとしてPHPサーバにトークンを送信

    事前に多くのお礼を頂き、誠にありがとうございます

  • +0

    何か言及を忘れた。サーバーはJSON出力を生成してクライアントに送信します。どの時点でもHTML/XMLは関係しません。 – jorgeas80

    答えて

    1

    私は最も安全で合理的​​な方法はHTTPS POSTと考えています。トークンがHTTPS要求のクエリ文字列の一部である場合、トークンも暗号化されます。しかし、サーバーログにはクリアテキストが表示されます。ブラウザを使用すると、ブラウザ履歴にも表示される可能性があります。 HTTPヘルパーライブラリに応じて、要求が失敗した場合などにHTTPS URLを記録することもできます。

    私の目では、認証ヘッダーでトークンを送信することは、サーバーとクライアント間の認証には使用されないため、奇妙なものになります。

    +0

    Mmmm ...私はあなたの要点を見ていますが、私はより多くのコンテキストを置くでしょう:私は4SQマッシュアップを構築しています。ユーザーの代わりに4SQとcomunicatesし、iPhone/AndroidクライアントにREST APIを提供する1台のサーバー。これらのクライアントがサインアップすると、4SQトークンがサーバーに送信されます。このトークンを送信するにはどうすればよいですか? HTTP認証ヘッダー?あなたは正しい:それは認証のために使われていない、ちょうど "ここに私の4SQトークンは、私の名前でそれを使用する"です。 POST変数として送信する方が、より良い、あるいはより正しいアプローチですか? – jorgeas80

    +0

    それ以外は別の問題があります。クライアントが私のサーバーに送信する認証関連の唯一の事柄は、サインアップ時の4SQトークンです。これ以上何もない。私は本当にユーザー/パスワードの問題に対処したいとは思わない。 1つのクライアントが自分のサーバーに有効な4SQトークンを送信すると、サーバーはそれを信頼します。それが私のアプローチです。このアプローチでは、すべてのクライアント/サーバー要求に4SQトークンが必要です。私は4SQトークンに基づいて私のサーバーに2番目のトークンを生成し、それを4SQトークンの代わりに使用すると考えました。しかし、私はこの2番目のトークンを生成するためにどのメソッドを使うのか、それとも概念的に正しいのかわかりません... – jorgeas80

    +0

    ユーザーのために何かを保存する必要がないときは、毎回、Foursquareトークンを要求。それ以外の場合は、ユーザーの一意のIDを生成し、このIDと一緒にOAuthトークンを保存することもできます(例:http://php.net/manual/de/function.uniqid.php)。その場合、攻撃者はAPIを悪用し、ユーザーのFoursquareアカウントに直接アクセスすることはできません。 – diewie