1、客户端详细信息表:oauth_client_details

对oauth_client_details的操作主要集中在JdbcClientDetailsService.java中

字段 注释
client_id 主键,客户端ID
resource_ids 客户端所能访问的资源id集合,多个资源时用逗号(,)分隔
client_secret 客户端访问密匙
scope 客户端申请的权限范围,可选值包括read,write,trust;若有多个权限范围用逗号(,)分隔


authorized_grant_types
客户端支持的授权许可类型(grant_type),可选值包括authorization_code,password,refresh_token,implicit,client_credentials,若支持多个授权许可类型用逗号(,)分隔
web_server_redirect_uri 客户端重定向URI,当grant_type为authorization_code或implicit时, 在Oauth的流程中会使用并检查与数据库内的redirect_uri是否一致
authorities 客户端所拥有的Spring Security的权限值,可选, 若有多个权限值,用逗号(,)分隔
access_token_validity 设定客户端的access_token的有效时间值(单位:秒),若不设定值则使用默认的有效时间值(60 60 12, 12小时)
refresh_token_validity 设定客户端的refresh_token的有效时间值(单位:秒),若不设定值则使用默认的有效时间值(60 60 24 * 30, 30天)
additional_information 这是一个预留的字段,在Oauth的流程中没有实际的使用,可选,但若设置值,必须是JSON格式的数据
create_time 记录创建时间
autoapprove 设置用户是否自动批准授予权限操作, 默认值为 ‘false’, 可选值包括 ‘true’,‘false’, ‘read’,‘write’

2、认证授权Token记录表:oauth_access_token

对oauth_access_token表的操作主要集中在JdbcTokenStore.java中

字段 注释
client_id 认证授权客户端ID
token_id Token标识:通过MD5加密access_token的值
token OAuth2AccessToken.java对象序列化内容
user_name 用户名,若客户端没有用户名则该值等于client_id
authentication_id 根据当前的username、client_id与scope通过MD5加密生成该字段的值
authentication OAuth2Authentication.java对象序列化内容
refresh_token RefreshToken标识:通过MD5加密refresh_token的值
create_time 记录创建时间

3、刷新授权Token记录表:oauth_refresh_token

对oauth_refresh_token的操作主要集中在JdbcTokenStore.java中

字段 注释
token_id RefreshToken标识:通过MD5加密refresh_token的值
token OAuth2RefreshToken.java对象序列化内容
authentication OAuth2Authentication.java对象序列化内容
create_time 记录创建时间

4、授权码Code记录表:oauth_code

对oauth_code的操作主要集中在JdbcAuthorizationCodeServices.java中

字段 注释
authentication AuthorizationRequestHolder.java对象序列化内容
code 存储服务端系统生成的code的值(未加密)
create_time 记录创建时间

拓展:见下图

image.png