解决方法
注意:以下答案主要适用于OAuth 1.0
我不知道DevDefined库的任何内容.但是,这是一个非技术性的数据库设计描述,我最终在最新的项目中使用sql数据库.
它应该涵盖遵循基本规范所需的一切.我试图把它保持在绝对最小值.
RequestTokens
>令牌(我在这里使用MD5,主键)
> consumerKey(消费者的唯一标识符)
>秘密(SHA1)
> createTime(timestamp)
>回调
AccessTokens
>令牌(MD5,主键)
>秘密(SHA1)
> consumerKey
> userID(指资源所有者)
> createTime
消费者(注册第三方应用程序)
> consumerKey(MD5,主键)
consumerSecret(SHA1)
> userID(指开发者注册的应用程序,不唯一)
>说明(用于描述应用的文字)
>名称(应用程序的名称)
>回调
UsedNonces
>随机数
>时间戳
过滤器的处理真的是我最大的设计问题. OAuth告诉您永远不要再使用相同的时间戳使用相同的随机数.但是这将使得无限巨大的数据库.我认为大多数提供商至少在一段时间内将旧通配符分批.
基于前提是所有超过5分钟的时间戳的请求都被拒绝的情况,我通常会清除超过5分钟的随机数.检查时间戳时,我稍微宽恕,他们需要是UTC,不要超过5分钟,而不是服务器时间超过一分钟.