2016-04-09 5 views
1

私はPawでoauth 2をやろうとしています。クライアントIDとクライアント秘密を正しくエンコードしているようには見えません。私のサーバーはusername:password形式を想定しています。私は同じ分野で別の同じ結果を試してみました。足ベースOauthエンコーディング

入力= VjE6MHJ:SjZvR24 =

ベース64のエンコード結果= 'VmpFNk1ISjpTalp2UjI0PQの==

足結果= VmpFNk1ISjpTalp2UjI0JTNE

ベース64の結果の作品とは、トークンを返しますPawはエンコードされていないので間違っていません。

答えて

0

これは遅れて申し訳ありません。唯一の違いは、あなたのパスワードの末尾にある=というサインは、PawによってURLエンコードされていますが、サーバーはURLエンコードされた値を期待していません。

OAuth 2 spec/2.3.1. Client Passwordによれば、クライアントIDとクライアント秘密をURLエンコードする必要があります。それでは、質問には、=標識もエンコードする必要がありますか?仕様からはあまり明確ではありません。他のクライアント(おそらくOAuthのクライアント実装、JS/Swift/Python/Java)でテストしましたか?

+0

これはPHPで動作します。私はIDと秘密を個別にエンコードし、文字列全体を "id:secret"でエンコードします。私は本当に足で作業するようにしたいので、私は他の機能を使用することができます。私は生のIDと秘密をエンコーディングせずに入れてみました。コンソールにエラーが表示され、文字列を正しくエンコードしていないようです。 – pcm70

+0

PHPでカールを使用して動作します。 (私は上記に特定されていませんでした)PAWがどのようにエンコードするかは本当に分かりません。 IDとシークレットを個別にエンコードして、ID:シークレットと組み合わせてエンコードしますか? – pcm70

+0

私たちが使用しているbase64はかなり標準的です。もちろん、最初に文字列を 'ID:Secret'と組み合わせて、全体のBase64を計算します。 –

関連する問題