官方SQL表语句:查看SQL表结构,请点这里。
官方有sql语句,但是没有详细的对每个字段做出详细的解释,让我们在使用OAuth2.0 的时候也有一些迷茫,这里主要针对主要的表以及字段进行说明。
其他表都比较简单也容易理解,重点主要时对于oauth_client_details,以及对应字段的意义,因为在实际使用的时候,该表中的字段是影响业务运行的关键。
先大致看一下流程
上图可以看到大致分为用户,认证服务Authorization Server,以及资源服务resource server,三方应用客户端client
oauth_client_details
client_id | 主键,必须唯一,不能为空. 用于唯一标识每一个客户端(client); 在注册时必须填写(也可由服务端自动生成). 对于不同的grant_type,该字段都是必须的. 在实际应用中的另一个名称叫appKey,与client_id是同一个概念. |
resource_ids | 客户端所能访问的资源id集合,多个资源时用逗号(,)分隔,如: "unity-resource,mobile-resource". 可以根据上图知道,我们有Resource Server资源服务器。 Authorization Server给client第三方客户端授权的时候,可以设置这个client可以访问哪一些Resource Server资源服务,如果没设置,就是对所有的Resource Server都有访问权限。 |
client_secret | 用于指定客户端(client)的访问密匙; 在注册时必须填写(也可由服务端自动生成). 对于不同的grant_type,该字段都是必须的. 在实际应用中的另一个名称叫appSecret,与client_secret是同一个概念. |
scope | 指定客户端申请的权限范围,可选值包括read,write,trust;若有多个权限范围用逗号(,)分隔,如: "read,write". @EnableGlobalMethodSecurity(prePostEnabled = true)启用方法级权限控制 然后在方法上注解标识@PreAuthorize("#oauth2.hasScope('read |