我正在使用 DevDefined 库实现 OAuth 提供程序。
我想知道是否有任何推荐的数据库结构用于在服务器端存储消费者和 token 数据。
对此的任何建议将不胜感激。
最佳答案
注意:以下答案主要适用于 OAuth 1.0
我对 DevDefined 库一无所知。但这里是对我在最新项目中最终使用的数据库设计的非技术描述,使用的是 SQL 数据库。
它应该涵盖遵循基本规范所需的一切。我试图将其降低到绝对最低限度。
请求 token
访问 token
消费者 (注册的第三方应用程序)
已用随机数
对我来说,nonce 的处理确实是最大的设计问题。 OAuth 告诉您永远不要再让相同的 nonce 与相同的时间戳一起使用。但这将形成一个无限大的数据库。我认为大多数提供商至少不时地批量处理旧的随机数。
我通常会清除超过 5 分钟的 nonce,前提是所有时间戳超过 5 分钟的请求都被拒绝。检查时间戳时我有点宽容,它们需要是 UTC 并且不超过 5 分钟,并且不超过我的服务器时间超过一分钟。
关于database-design - 推荐的 OAuth Provider 数据库结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4534337/