2

iPad用のOAuth1.0aを使用してアプリを開発しています。

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

結果は次のとおりです。

  • 適切な署名ベースコードを取得します

  • 異なる署名を取得します

OAuthの私の理解によると、これは次のことを意味します。

  • 私の署名アルゴリズムにはバグがあります(HMAC-SHA1)(ただし、サードパーティから入手しています:https ://github.com/jdg/oauthconsumer/tree/master/Crytpo/ )

  • サービスプロバイダーが間違っている

署名ベースコードとキーから署名を作成して、誰が正しいか、誰が間違っているかを確認できる、おそらくオンラインの無料ツールはありますか?

ご協力いただきありがとうございます

4

3 に答える 3

1

OAuthConsumerHMAC-SHA1 コンポーネントだけでなく、すべてを使用しないのはなぜですか? これはよく使用され、よくテストされたコードであり、さまざまなアプリで使用されています。OAuthConsumerそれは「よく知られている」と言えます。

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

これにより、暗号コードの使用方法が残ります。

OAuth 署名で見た一般的な問題:

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

もう 1 つできることは、同じクライアント コードを使用して別の OAuth サービス (Twitter など) に接続することです。コードが Twitter の正しい署名を確実に生成する場合、他のサービスに対して正しいことを行う可能性があります。これは、(おそらく) 問題がサービスにあったことを意味します。各 OAuth 実装には独自の癖があるように見えるので、「可能性が高い」と言います。

于 2010-11-18T14:04:56.303 に答える
0

これが問題になる可能性は低いですが、iOS 組み込みの HMAC メソッドを使用して SHA を生成してみてください。

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/

于 2010-11-18T09:36:06.817 に答える
0

コンシューマー キーに特殊文字 (「+」と「=」) が含まれており、これらの文字を使用すると、プロバイダーと OAuth iOS フレームワークの署名が異なります。

RFC を調べて、誰が正しいかを判断しようとしましたが、決定を下すことができませんでした。そこで、OAuth コードをハックして、プロバイダーで動作するようにしようと思います。トリックを見つけたら、このページで共有します。

したがって、特殊文字のエンコードは扱いにくい場合があることに注意してください。署名ベースに署名するために特殊文字をエンコードする方法について意見がある場合は、遠慮なく共有してください。

于 2011-01-21T10:22:25.090 に答える