-- ----------------------------
-- 1. 创建数据库
-- ----------------------------
CREATE DATABASE IF NOT EXISTS oauth2_server DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;
-- ----------------------------
-- 2. 创建表
-- ----------------------------
use oauth2_server;
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- 2.1 oauth2_authorization 令牌发放记录表
-- ----------------------------
CREATE TABLE oauth2_authorization (
id varchar(100) NOT NULL COMMENT '令牌ID',
registered_client_id varchar(100) NOT NULL COMMENT '注册的客户端ID',
principal_name varchar(200) NOT NULL COMMENT '主体名称',
authorization_grant_type varchar(100) NOT NULL COMMENT '授权授予类型',
authorized_scopes varchar(1000) DEFAULT NULL COMMENT '授权范围',
attributes blob DEFAULT NULL COMMENT '属性',
state varchar(500) DEFAULT NULL COMMENT '状态',
authorization_code_value blob DEFAULT NULL COMMENT '授权码值',
authorization_code_issued_at timestamp DEFAULT NULL COMMENT '授权码颁发时间',
authorization_code_expires_at timestamp DEFAULT NULL COMMENT '授权码过期时间',
authorization_code_metadata blob DEFAULT NULL COMMENT '授权码元数据',
access_token_value blob DEFAULT NULL COMMENT '访问令牌值',
access_token_issued_at timestamp DEFAULT NULL COMMENT '访问令牌颁发时间',
access_token_expires_at timestamp DEFAULT NULL COMMENT '访问令牌过期时间',
access_token_metadata blob DEFAULT NULL COMMENT '访问令牌元数据',
access_token_type varchar(100) DEFAULT NULL COMMENT '访问令牌类型',
access_token_scopes varchar(1000) DEFAULT NULL COMMENT '访问令牌范围',
oidc_id_token_value blob DEFAULT NULL COMMENT 'OIDC ID 令牌值',
oidc_id_token_issued_at timestamp DEFAULT NULL COMMENT 'OIDC ID 令牌颁发时间',
oidc_id_token_expires_at timestamp DEFAULT NULL COMMENT 'OIDC ID 令牌过期时间',
oidc_id_token_metadata blob DEFAULT NULL COMMENT 'OIDC ID 令牌元数据',
refresh_token_value blob DEFAULT NULL COMMENT '刷新令牌值',
refresh_token_issued_at timestamp DEFAULT NULL COMMENT '刷新令牌颁发时间',
refresh_token_expires_at timestamp DEFAULT NULL COMMENT '刷新令牌过期时间',
refresh_token_metadata blob DEFAULT NULL COMMENT '刷新令牌元数据',
user_code_value blob DEFAULT NULL COMMENT '用户代码值',
user_code_issued_at timestamp DEFAULT NULL COMMENT '用户代码颁发时间',
user_code_expires_at timestamp DEFAULT NULL COMMENT '用户代码过期时间',
user_code_metadata blob DEFAULT NULL COMMENT '用户代码元数据',
device_code_value blob DEFAULT NULL COMMENT '设备代码值',
device_code_issued_at timestamp DEFAULT NULL COMMENT '设备代码颁发时间',
device_code_expires_at timestamp DEFAULT NULL COMMENT '设备代码过期时间',
device_code_metadata blob DEFAULT NULL COMMENT '设备代码元数据',
PRIMARY KEY (id)
);
-- ----------------------------
-- 2.2 oauth2_authorization_consent 授权记录表
-- ----------------------------
CREATE TABLE oauth2_authorization_consent (
registered_client_id varchar(100) NOT NULL COMMENT '注册的客户端ID',
principal_name varchar(200) NOT NULL COMMENT '主体名称',
authorities varchar(1000) NOT NULL COMMENT '授权',
PRIMARY KEY (registered_client_id, principal_name)
);
-- ----------------------------
-- 2.3 oauth2-registered-client OAuth2 客户端信息表
-- ----------------------------
CREATE TABLE oauth2_registered_client (
id varchar(100) NOT NULL COMMENT '客户端ID',
client_id varchar(100) NOT NULL COMMENT '客户端ID',
client_id_issued_at timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '客户端ID颁发时间',
client_secret varchar(200) DEFAULT NULL COMMENT '客户端密钥',
client_secret_expires_at timestamp DEFAULT NULL COMMENT '客户端密钥过期时间',
client_name varchar(200) NOT NULL COMMENT '客户端名称',
client_authentication_methods varchar(1000) NOT NULL COMMENT '客户端认证方法',
authorization_grant_types varchar(1000) NOT NULL COMMENT '授权授予类型',
redirect_uris varchar(1000) DEFAULT NULL COMMENT '重定向URI',
post_logout_redirect_uris varchar(1000) DEFAULT NULL COMMENT '注销后重定向URI',
scopes varchar(1000) NOT NULL COMMENT '授权范围',
client_settings varchar(2000) NOT NULL COMMENT '客户端设置',
token_settings varchar(2000) NOT NULL COMMENT '令牌设置',
PRIMARY KEY (id)
);