How to customize access token with user information (user name, and phone number,..) in the oauth2.1 authorization server in the spring boot?

699 views Asked by At

How to customize access token with user information (user name, and phone number,..) in the oauth2.1 authorization server in the spring boot?

This my workaround project, any resources/help on how to add user details in the access token itself?

1

There are 1 answers

0
Thirumal On BEST ANSWER

We can add any information using jwtCustomizer. Refer 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);
            }
        };
    }