如何在spring boot oauth2/2.1授权服务器的oauth2 access token中添加用户信息(用户名,手机号)?

问题描述 投票:0回答:1

如何在spring boot oauth2/2.1授权服务器的oauth2 access token中添加用户信息(用户名,电话号码)?.

这是我的解决方法project,关于如何在访问令牌本身中添加用户详细信息的任何资源/帮助?

java spring-boot spring-security openid spring-boot-oauth2.1
1个回答
0
投票

我们可以使用

jwtCustomizer
添加任何信息。参考this

    @Bean
    OAuth2TokenCustomizer<JwtEncodingContext> jwtCustomizer(CustomClaims claims) {
        return context -> {
            if (context.getTokenType() == OAuth2TokenType.ACCESS_TOKEN) {
                Authentication principal = context.getPrincipal();
                Set<String> authorities = principal.getAuthorities().stream()
                        .map(GrantedAuthority::getAuthority)
                        .collect(Collectors.toSet());
                context.getClaims().claims(c -> c.put("Creator", "Thirumal"));
                context.getClaims().claims(c -> c.putAll(claims.getClaims(principal)));
                context.getClaims().claim("roles", authorities);
            }
        };
    }
    
© www.soinside.com 2019 - 2024. All rights reserved.