23

oauthアクセストークンとoauthアクセスシークレットは何文字の長さにすることができますか?また、許可される文字は何ですか?それらをデータベースに保存する必要があります。

4

7 に答える 7

11

明確な制限があるかどうかはわかりません。スペックには何もありません。とはいえ、OAuthトークンはURLパラメータとして渡されることが多いため、同じ制限がいくつかあります。つまり、適切にエンコードする必要があります。

于 2009-07-12T04:34:20.880 に答える
4

OAuthは、トークンの形式や内容を指定しません。暗号化された名前と値のペアをトークンとして使用するだけです。トークンには任意の文字を使用できますが、トークンがURLセーフである場合は、処理がはるかに簡単になります。これは、URLセーフなBase64で暗号文をエンコードすることで実現します。

于 2009-08-04T01:39:05.943 に答える
2

ほとんどの人がすでに指摘しているように。OAuth仕様では正確な方向性は示されていませんが、正確な方向性は示されています...

引用元:https ://datatracker.ietf.org/doc/html/draft-hammer-oauth-10#section-4.9

「サーバーは、少なくとも共有秘密が有効である期間、そのような攻撃に抵抗するのに十分な長さで、十分にランダムな共有秘密を割り当てるように注意する必要があります。」

「もちろん、サーバーは注意を怠って、合理的な最長の秘密を使用するように促されます。」

一方、ブラウザの最大URL長を考慮する必要があります。

参照:http ://www.boutell.com/newfaq/misc/urllength.html

于 2010-03-03T08:31:53.920 に答える
2

スペックを読めば、

許可サーバーは、登録済みクライアントにクライアントID( クライアントから提供された登録情報を
表す一意の文字列)を発行します。
クライアント識別子は
秘密ではありません。
リソース所有者に公開されており、クライアント認証に単独で使用してはなりません(MUSTNOT) 。
クライアントIDは、許可サーバーに固有です。


クライアント識別子の文字列サイズは、この仕様では未定義のままです。
クライアントは、識別子のサイズについて推測することを避ける必要があります。
承認サーバーは、発行する識別子のサイズを文書化する必要があります(SHOULD )。

次に、アクセストークンは、URLパラメータとしてではなく、ヘッダーとして送信する必要があります。

承認:ベアラー<トークン>。

于 2013-08-01T06:24:53.747 に答える
1

OAuthトークンは、概念的には任意のサイズのバイトシーケンスであり、文字ではありません。URLでは、標準のURLエスケープメカニズムを使用してエンコードされます。

  unreserved = ALPHA, DIGIT, '-', '.', '_', '~'

予約されていないものはすべて%エンコードされます。

渡されるoauth_tokenパラメーターについて話しているだけかどうかはわかりません。通常、oauth_token_secret、oauth_signatureなどの追加のパラメーターも保存および送信する必要があります。たとえば、oauth_timestampは、1970年以降の秒数を表す整数(10進数のASCII数字でエンコード)です。

于 2009-07-12T04:34:47.163 に答える
0

OAuthトークンはHTTPヘッダー「承認」で頻繁に送信されるため、OAuthトークンの有効な文字はHTTPヘッダー値の制限によって制限されます。

HTTPヘッダーの有効な文字は、https: //www.rfc-editor.org/rfc/rfc7230#section-3.2.6で指定されています。または、一般的なHTTPクライアントライブラリのHTTPヘッダー検証コードを確認することもできます。たとえば、OkHttpフレームワークのHeaders.checkNameAndValue() utilを参照してください。https ://github.com/square/okhttp/blob/master/okhttp/src/main/ java / okhttp3 / Headers.java

そして、これがすべてではありません。HTTPヘッダーセパレーター(;および他の多く)と空白記号(''および'\ t')および二重引用符( ")は含めません(https://www.rfc-editor.org/rfc/rfc7230#を参照)。セクション-3.2.6)HTTPヘッダーで使用する前にOAuthトークンをエスケープする必要があるため。トークンはcurlテスト要求で人間によって頻繁に使用されるため、優れたトークンジェネレーターはそのような文字を追加しません。ただし、どの文字が含まれるかを確認する必要があります。仮定を行う前に、サービスが機能するOauthトークンジェネレーターを作成します。

于 2017-06-28T10:04:15.850 に答える
-4

具体的には、Oauth仕様に何も記載されていない場合でも、javaとmysqlを使用している場合は、通常UUIDを使用してトークンを生成し、データベースにBINARY(16)として格納するため、16文字になります。最近OAuthを使用して開発を行ったので、これらの詳細を知っています。

于 2014-08-11T06:48:43.843 に答える