我目前正在学习OAuth。我一直在修补这个OAuth库,特别是PHP版本。
这是基本的,但足以让我掌握基本的思想。现在,我的学习转向将数据存储到数据库中。我想我已经知道的几件事:
- 我需要创建存储应用程序特定的消费者密钥和消费者秘密的表
- 我需要创建存储特定于应用程序的用户访问令牌密钥和秘密的表(以及生成的日期,以便下次需要实现令牌过期时,我可以使用它)
现在,输入问题:
- 我需要另一张桌子吗?还是这两个就够了?
需要一个表来处理应用程序键。每个被授权处理您的服务器数据的应用程序都将有一个公共/私有令牌。
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和时间戳信息,以避免重放攻击。