当前位置: 首页 > news >正文

有手机网站怎样做微信小程序收录网站的平台有哪些

有手机网站怎样做微信小程序,收录网站的平台有哪些,我想做网站怎么做昆山,阿里云可以做网站么目录 一、问题描述 二、实现步骤 1、自定义TokenEnhancer 2、配置授权服务器 3、自定义UserDetails的User类 三、参考文档 一、问题描述 Oauth2里默认生成的JWT信息并没有用户信息,在认证授权后一般会返回这一部分信息,我对此进行了改造。 Oauth…

目录

一、问题描述

二、实现步骤

1、自定义TokenEnhancer

2、配置授权服务器

3、自定义UserDetails的User类

三、参考文档


一、问题描述

Oauth2里默认生成的JWT信息并没有用户信息,在认证授权后一般会返回这一部分信息,我对此进行了改造。

Oauth 2.0 JWT 默认返回 OAuth2AccessToken 接口的实现类,默认实现类是 DefaultOAuth2AccessToken,返回字段有 5 个:

access_token:表示访问令牌,必选项
token_type:表示令牌类型,该值大小写不敏感,必选项,默认是 bearer 类型
expires_in:表示过期时间,单位为秒。如果省略该参数,必须其他方式设置过期时间。
refresh_token:表示更新令牌,用来获取下一次的访问令牌,可选项。
scope:表示权限范围,如果与客户端申请的范围一致,此处可省

改造后,最终实现效果:

可以看到额外信息已添加上。

二、实现步骤

1、自定义TokenEnhancer

public TokenEnhancer customTokenEnhancer() {return (accessToken, authentication) -> {Map<String, Object> additionalInfo = new HashMap<>();Object principal = authentication.getPrincipal();try {String s = objectMapper.writeValueAsString(principal);Map<?, ?> map = objectMapper.readValue(s, Map.class);/* 移除不需要的属性 */map.remove("accountNonExpired");map.remove("accountNonLocked");map.remove("credentialsNonExpired");map.remove("enabled");additionalInfo.put("data", map);} catch (JsonProcessingException e) {log.error("", e);}((DefaultOAuth2AccessToken) accessToken).setAdditionalInformation(additionalInfo);return accessToken;};}

2、配置授权服务器

    @Overridepublic void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {TokenEnhancerChain enhancerChain = new TokenEnhancerChain();enhancerChain.setTokenEnhancers(Arrays.asList(customTokenEnhancer(), jwtAccessTokenConverter())); //token转换器DefaultTokenServices tokenServices = new DefaultTokenServices();tokenServices.setTokenEnhancer(enhancerChain); //token拓展链tokenServices.setTokenStore(jwtTokenStore()); //采用JWT存储token/* 开启refresh_token */tokenServices.setReuseRefreshToken(true);tokenServices.setSupportRefreshToken(true);endpoints.authenticationManager(authenticationManager).userDetailsService(userDetailsService).tokenStore(jwtTokenStore()) //采用JWT存储token.tokenServices(tokenServices);super.configure(endpoints);}

3、自定义UserDetails的User类

@Getter
@Setter
@ApiModel("登录用户对象")
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class JwtUser<T> extends User {@ApiModelProperty("账号信息")private T info;@ApiModelProperty("菜单")private List<TreeNode<SysMenu>> menus;public JwtUser(String username, String password, Collection<? extends GrantedAuthority> authorities) {super(username, password, authorities);}public JwtUser(String username, String password, boolean enabled, boolean accountNonExpired, boolean credentialsNonExpired, boolean accountNonLocked, Collection<? extends GrantedAuthority> authorities) {super(username, password, enabled, accountNonExpired, credentialsNonExpired, accountNonLocked, authorities);}
}

并自定义UserDetailsService并在返回时返回自定义对象即可。

三、参考文档

https://www.cnblogs.com/kuangdaoyizhimei/p/14279979.html

Spring Security JWT 添加额外信息_jwts增加参数-CSDN博客

http://www.qdjiajiao.com/news/4057.html

相关文章:

  • p2p网站制作价格网站制作建设
  • 网络空间安全就业前景抚州seo排名
  • 湖北专升本网站建设介绍网络营销
  • 设计软件库网站页面优化内容包括哪些
  • 做plc课程设计的网站培训网站有哪些
  • 常德做网站建设的公司品牌推广与传播怎么写
  • 评估政府网站建设成效的指标推荐seo关键词优化
  • 上海工作网站站内优化包括哪些
  • 做苗木的用什么网站巨量引擎广告投放
  • 做推广网站的文章seo搜索引擎优化软件
  • 专业网站制作公司采用哪些技术制作网站?首页关键词优化价格
  • 兰州新站seoseo外包优化公司
  • 郑州手机网站建设多少钱竞价培训班
  • 怎样做问卷网站seo诊断报告
  • 邯郸之窗官网排名优化是怎么做的
  • 好便宜建站cba目前排行
  • wordpress车间360优化大师官网
  • web网站开发环境google搜索引擎入口
  • 网站标准字体湖人排名最新
  • 名师工作室网站建设seo站群优化
  • 网站建设是无形资产天津关键词优化网站
  • 高并发网站建设济南seo排名优化推广
  • h5广告seo优化推广多少钱
  • 怎样把网站做的更吸引如何在百度推广自己
  • dw可以做h5网站网址安全检测中心
  • 网站目录做二级域名目前推广平台都有哪些
  • 网站建设准备工作外贸找客户有什么网站
  • 性能网站建设老客外链
  • hk网站域名百度搜索引擎广告投放
  • 郑州营销型网站建设价格竞价排名营销