在本系列前面的文章中,正常情况下,OAuth2 返回的 access_token 信息一共包含五项:
分别是:
access_token
token_type
refresh_token
expires_in
scope
具体如下:
{
"access_token": "b9c9e345-90c9-49f5-80ab-6ce5ed5a07c9",
"token_type": "bearer",
"refresh_token": "9f843e0e-1778-495d-859a-52a1a806c150",
"expires_in": 7199,
"scope": "seller-auth"
}
但是在实际操作中,我们往往需要在这个基础上,定制自己的返回信息,这就需要我们对这个东西进行自定义。本文松哥就来和大家聊一聊这里要如何自定义。
敲黑板划重点: 本文还是我们最近 OAuth2 系列的延续,如果没看过本系列之前的文章,一定先阅读一下,这有助于更好的理解本文:
好了,不废话了,我们来看今天的内容。
1.access_token 从哪里来
首先我们要搞清楚,access_token 从哪里来。
在前面的文章中,我们在生成 access_token 的时候,都配置了一个类,叫做 AuthorizationServerTokenServices,如下:
@Bean
AuthorizationServerTokenServices tokenServices() {
DefaultTokenServices services = new DefaultTokenServices();
services.setClientDetailsService(clientDetailsService());
services.setSupportRefreshToken(true);
services.setTokenStore(tokenStore);
TokenEnhancerChain chain = new TokenEnhancerChain();
chain.setTokenEnhancers(Arrays.asList(jwtAccessTokenConverter,externalAccessTokenInfo));
services.setTokenEnhancer(chain);
return services;
}
在这个配置中,我们提供了一个 DefaultTokenServices