服务器端的数据存储方案
OAuth2.0 机制的核心工作流程,大部分信息,如APP 信息、用户和APP 之间的授权关系、Access Token等,需要永久性存储,存储在数据库中。一些不需要永久存储的信息,如临时授权码,只使用一次,而且,在很短的时间内就要使其失效,就没有必要存储在数据库之中,可存储在譬如memcached 等缓存系统中,即提高了系统的处理速度,又减少数据库压力。数据库表结构设计:客户端要先注册一个应用,获取该应用的APPID和APPSECRET,应用的详细信息存储在数据表中,如下所示:
表1 appinfo APP 信息存储表
字段 备注
appid client_id
appsecret client_secret
appname 应用名称
appowner 应用的所有者
owneremail 应用拥有者的email
appdescribe 应用描述
status 应用是否通过审核
callbackurl 跳回的url
addtime 添加时间
表2 authorize 授权关系存储表
客户端与资源拥有者是“多对多”的关系,如下表
字段 备注
appid 应用ID
userid 用户ID
addtime 添加时间
表3 access_token 访问令牌存储表
字段 备注
access_token 访问令牌
addtime 添加时间