前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OAuth2.0系列(四)因为要在数据库保存客户端的信息,所以这个表如何建?这个springsecurity框架已经给我们提供了,解释各个表里面的字段是什么意思

OAuth2.0系列(四)因为要在数据库保存客户端的信息,所以这个表如何建?这个springsecurity框架已经给我们提供了,解释各个表里面的字段是什么意思

作者头像
一写代码就开心
发布2020-11-20 14:22:54
1.8K0
发布2020-11-20 14:22:54
举报
文章被收录于专栏:java和python
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

OAuth2.0的服务端和资源端都不是我们自己写的,都是springsecurity框架给我们写的,既然是springsecurity框架的,那么客户端的信息保存在数据库里面的时候,这个数据库的表结构就需要使用springsecurity框架定义的。

OAuth2.0中表结构说明

这个表是按照springsecurity框架规则创建的表,

代码语言:javascript
复制
DROP TABLE IF EXISTS `oauth_access_token`;

CREATE TABLE `oauth_access_token` (
  `token_id` varchar(255) DEFAULT NULL,
  `token` longblob,
  `authentication_id` varchar(255) DEFAULT NULL,
  `user_name` varchar(255) DEFAULT NULL,
  `client_id` varchar(255) DEFAULT NULL,
  `authentication` longblob,
  `refresh_token` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;



DROP TABLE IF EXISTS `oauth_approvals`;

CREATE TABLE `oauth_approvals` (
  `userId` varchar(255) DEFAULT NULL,
  `clientId` varchar(255) DEFAULT NULL,
  `scope` varchar(255) DEFAULT NULL,
  `status` varchar(10) DEFAULT NULL,
  `expiresAt` datetime DEFAULT NULL,
  `lastModifiedAt` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;



DROP TABLE IF EXISTS `oauth_client_details`;

CREATE TABLE `oauth_client_details` (
  `client_id` varchar(255) NOT NULL,
  `resource_ids` varchar(255) DEFAULT NULL,
  `client_secret` varchar(255) DEFAULT NULL,
  `scope` varchar(255) DEFAULT NULL,
  `authorized_grant_types` varchar(255) DEFAULT NULL,
  `web_server_redirect_uri` varchar(255) DEFAULT NULL,
  `authorities` varchar(255) DEFAULT NULL,
  `access_token_validity` int(11) DEFAULT NULL,
  `refresh_token_validity` int(11) DEFAULT NULL,
  `additional_information` varchar(255) DEFAULT NULL,
  `autoapprove` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;



DROP TABLE IF EXISTS `oauth_client_token`;

CREATE TABLE `oauth_client_token` (
  `token_id` varchar(255) DEFAULT NULL,
  `token` longblob,
  `authentication_id` varchar(255) DEFAULT NULL,
  `user_name` varchar(255) DEFAULT NULL,
  `client_id` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


DROP TABLE IF EXISTS `oauth_code`;

CREATE TABLE `oauth_code` (
  `code` varchar(255) DEFAULT NULL,
  `authentication` varbinary(2550) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;



DROP TABLE IF EXISTS `oauth_refresh_token`;

CREATE TABLE `oauth_refresh_token` (
  `token_id` varchar(255) DEFAULT NULL,
  `token` longblob,
  `authentication` longblob
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
在这里插入图片描述
在这里插入图片描述

官方SQL地址: https://github.com/spring-projects/spring-security-oauth/blob/master/spring-securityoauth2/src/test/resources/schema.sql

在这里插入图片描述
在这里插入图片描述

oauth_client_details【核心表】

1

在这里插入图片描述
在这里插入图片描述

2 resource_ids

B系统上面是有很多的资源,那么A系统是可以访问B系统的哪些资源呢?就可以将B系统对应资源的id放到这个字段里面

3 client_secret

这个字段里面是存放A系统登录B系统的密码

4 scope 这个字段就是权限,就是你对可以访问的资源有什么权限,比如增删改查 如果字段值为read ,就是只是查,如果值为write ,那么就是增删改

5 authorized_grant_types 这个字段的值就是 4个授权的模式,还有一个刷新的 一共5个值 authorization_code ,password ,refresh_token, implicit, client_credentials

6 web_server_redirect_uri

回调地址,授权码模式的时候用到的,就是B系统给你的授权码,到底返回到A系统的哪个地址 也就是这个字段保存A系统的一个服务端的一个地址

7 authorities

这个字段就是保存A系统是处于什么角色

8 access_token_validity

生成token的有效的时间,默认是12小时,可选项

9 additional_information

预留的一个字段,写不写都可以

10 archived

这个也是扩展的字段

11 trusted

在这里插入图片描述
在这里插入图片描述

12 autoapprove

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/10/15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • OAuth2.0中表结构说明
  • oauth_client_details【核心表】
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档