2011-10-27 12 views
1

現在、OAuthを学習しています。私はこのOAuth library、具体的にはPHP版を試してきました。OAuthサーバーデータ(クライアントではない)を格納するために必要なテーブル

私はベアボーンですが、基本的な考え方を理解するのに十分です。今、私の学習はデータベースにデータを保存することに移ります。

  • 私は
  • 秘密コンシューマキーと消費者の特定のアプリケーションを格納するテーブルを作成する必要があり、私はアプリケーションへのユーザーアクセストークン鍵と秘密の特定を保存するテーブルを作成する必要があります。私はは、私はすでに知っていると思うことがいくつか今

(日付に沿って次の時間、私はトークンの有効期限を実装する必要があるとき、私はそれを使用することができるように生成された)、質問を入力してください。

  • 別のテーブルが必要ですか?またはこれらの2つで十分ですか?
+0

「うまく動作する」ようにしたい場合は、oauth-phpライブラリをお勧めします。いくつかのストレージモジュール(いくつかのDBとセッション)があります。 MySQLモジュールには、必要なテーブルを含む.sqlファイルが含まれています。 – aitchnyu

+0

私は「仕事をしたい」とは思っていません。私は自分自身でそれをやりたいので、内部のプロセスを知っています。私は学習段階に入っています。私が既に構築された製品を使用していて、いつか失敗した場合、どうすればうまく動作しないかデバッグするのが難しいと思う。 – ariefbayu

答えて

2

アプリケーションキーを処理するには、1つのテーブルが必要です。サーバーデータの処理を許可されているすべてのアプリケーションに公開/非公開のトークンがあります。

AppID | Public Token | Private Token | Callback URL | Additional App Data 
------+--------------+---------------+--------------+-------------------- 
    1 | aaaaaaaaaaaa | bbbbbbbbbbbbb | http:///  | Test App #1 
    2 | cccccccccccc | ddddddddddddd | http:///  | Test App #2 

すでにお客様データテーブルがあります。したがって、顧客トークン/アプリケーショントークンを顧客IDにリンクするテーブルが必要になります。

App ID | Customer ID | Public Token | Private Token 
-------+-------------+--------------+-------------- 
    1 |   1 | zzzzzzzzzzzz | yyyyyyyyyyyy 
    2 |   1 | xxxxxxxxxxxx | wwwwwwwwwwww 

また、リプレイ攻撃を避けるためにナンスとタイムスタンプ情報を追跡する必要があります。

+0

ノンスとタイムスタンプをどのように追跡すればよいですか?まだ別のテーブル? – ariefbayu

+0

ノンスとタイムスタンプのチェックは主に短期間のため、おそらくそれらをメモリに保持することができます。 –

関連する問題