2010-11-18 9 views
2

iPad用OAuth1.0aを使用してアプリケーションを開発しています。私のOAuthリクエストシグネチャはサービスプロバイダのものとは異なります

私の問題は、私のrequest_tokenリクエストに正しい署名を取得できないことです。 接続したいサービスには、OAuthのパラメータに応じて署名をチェックできるデバッグツールがあります。

結果は次のとおりです。

  • 私は

  • 右シグニチャベースのコードを取得する私はOAuthのの私の理解によると異なるシグネチャに

を取得し、これはそれを意味します

  • 私の署名アルゴリズムは、(HMAC-SHA1)盗聴された(しかし、私はサードパーティからそれを得る:https://github.com/jdg/oauthconsumer/tree/master/Crytpo/

  • サービスプロバイダは、おそらくオンライン任意の無料のツール間違っ

が存在しています誰が正しい人と誰が間違っているかを確認するための署名ベースコードとキーから署名を作成できますか?あなたの助けのための

おかげ

答えて

0

私の問題は何ですか、消費者キーに特殊文字( '+'と '=')が含まれています。これらの文字では、プロバイダとOAuth iOSフレームワークの署名が異なります。

私は、誰が正しかったのかを決めるためにRFCを見ようとしましたが、決定できませんでした。だから私はOAuthコードをハックして自分のプロバイダと連携させるようにしようとしています。私はそれを見つけたらこのページでそのトリックを分かち合うつもりです。

特殊文字のエンコーディングが難しいかもしれないことに注意してください。また、署名ベースに署名するために特殊文字をエンコードする方法について意見がある場合は、自由に共有してください。

+0

@Henryこんにちは、あなたのiOSアプリにRightSignature APIを実装するためのサンプルをいくつか教えてください。 – iDeveloper

0

は、これが問題になることはほとんどありませんが、あなたのSHAを生成するために、HMAC方式で構築されたiOS版を使用してみてください:

http://developer.apple.com/library/ios/#documentation/System/Conceptual/ManPages_iPhoneOS/man3/CCHmac.3cc.html

可能性が高い何あなたの署名ということです基本文字列は実際には間違っています。ベース文字列が仕様に準拠していることを確認しましたか?あなたがここにあなたの要求を確認するために使用することができます良いインタラクティブなツールがあります:

http://hueniverse.com/2008/10/beginners-guide-to-oauth-part-iv-signing-requests/

+0

便利なリンクありがとうございます! –

1

なぜだけではなく、単にHMAC-SHA1のコンポーネントではなくOAuthConsumerのすべてを使うのか?これはよく使用され、よくテストされたコードで、さまざまなアプリで使用されています。私はOAuthConsumerが「良く知られている」と言っています。

サービスプロバイダが間違っているとは思われません(唯一の顧客でない限り)。

これで、暗号コードの使用方法が変わります。私はOAuthの署名を見てきました

一般的な問題:

  • が間違っを使用して、一見重要でないパラメータ
  • ベースURLからパラメータを分離していない
  • を逃しパラメータ
  • を並べ替えていませんHTTPメソッド
  • リダイレクトまたはエイリアス。あなたはserver.comに接続しますが、リモート側はapi.serverと自分自身を考えます。com

もう1つのことは、同じクライアントコードを使用して別のOAuthサービス(Twitterなど)を接続することです。あなたのコードがTwitterの正しい署名を確実に生成するならば、それは他のサービスに対して正しいことをする可能性が高いでしょう。これは、おそらく問題があなたの提案したように、あなたのサービスであることを意味します。それぞれのOAuth実装には独自の特徴があるように思われるため、「可能性が高い」と言います。

+0

ご返信ありがとうございます。私は実際にはOAuthConsumer全体を使用します。しかし、私はサービスプロバイダーがOAuthでかなり新しくなっていることを知っていますが、技術的な問題や他の開発者と連絡を取るための簡単な方法はありません。だからこそ私は問題がサービスプロバイダに関係していると思う傾向があります。私がリストアップした一般的な問題のリストを再確認しますが、私はすべてが良いと思います。 –

+0

@Dirty Henryちょうど別のカップルの提案を考えて、私の答えを編集しました。 –

関連する問題