存储OAuth服务器数据(非客户端)需要哪些表

时间:2011-10-27 11:59:21

标签: php mysql oauth

我正在学习OAuth。我一直在修补这个OAuth library,特别是PHP版本。

这是准确的,但足以让我掌握基本的想法。现在,我的学习转向将数据存储到数据库中。我认为我认为的几件事情:

  • 我需要创建存储应用程序特定的消费者密钥和消费者秘密的表
  • 我需要创建一个存储用户访问令牌密钥和特定于应用程序的秘密的表(沿着生成的日期,以便下次,当我需要实现令牌过期时,我可以使用它)

现在,输入问题:

  • 我需要另一张桌子吗?或者这两个就足够了?

1 个答案:

答案 0 :(得分:2)

您需要一个表来处理应用程序密钥。每个被授权处理服务器数据的应用程序都有一个公共/私有令牌。

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

您还需要跟踪nonce和timestamp信息以避免重放攻击。