当前位置:Gxlcms > 数据库问题 > OAuth 修改access_token的存储位置

OAuth 修改access_token的存储位置

时间:2021-07-01 10:21:17 帮助过:62人阅读

public TokenStore tokenStore() { return new JdbcTokenStore(dataSource()); }

DB脚本如下:

Mysql:

create table oauth_access_token (
  token_id VARCHAR(128),
  token BLOB,
  authentication_id VARCHAR(128) PRIMARY KEY,
  user_name VARCHAR(128),
  client_id VARCHAR(128),
  authentication BLOB,
  refresh_token VARCHAR(128)
);

SQLServer

create table oauth_access_token (
  token_id VARCHAR(128),
  token  varbinary(max),
  authentication_id VARCHAR(128) PRIMARY KEY,
  user_name VARCHAR(128),
  client_id VARCHAR(128),
  authentication  varbinary(max),
  refresh_token VARCHAR(128)
);

 字段解释

token_id:该字段的值是将access_token的值通过MD5加密后存储的

token:存储将OAuth2AccessToken.java对象序列化后的二进制数据, 是真实的AccessToken的数据值

authentication_id:该字段具有唯一性, 其值是根据当前的username(如果有),client_id与scope通过MD5加密生成的. 具体实现请参考DefaultAuthenticationKeyGenerator.java类

user_name:登录时的用户名, 若客户端没有用户名(如grant_type="client_credentials"),则该值等于client_id

client_id:你懂得

authentication:存储将OAuth2Authentication.java对象序列化后的二进制数据

refresh_token :该字段的值是将refresh_token的值通过MD5加密后存储的

 

这里需要特别注意的是BOLB类型与varbinary(max)类型。

 

正常的结果为:

技术图片

 

OAuth 修改access_token的存储位置

标签:grant   prim   sql   col   lazy   user   改变   turn   redis   

人气教程排行