刷新令牌未显示在客户端控制台中

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

我正在实现AuthorizationGrantType,如代码所示,并在正文中传递grand_type、用户名和密码参数,但没有显示refresh_token。我相信我的配置中缺少一些东西。我正在使用 Spring Boot 3.1.1

@Bean
    public RegisteredClientRepository registeredClientRepository() {
        // @formatter:off
        RegisteredClient registeredClient = RegisteredClient
                .withId(UUID.randomUUID().toString())
                .clientId(clientId)
                .clientSecret(passwordEncoder.encode(clientSecret))
                .scope("message.read")
                .scope("message.write")
                .scope(OidcScopes.OPENID)
                .scope(OidcScopes.PROFILE)
                .authorizationGrantType(AuthorizationGrantType.PASSWORD)
                .authorizationGrantType(AuthorizationGrantType.REFRESH_TOKEN)
                .tokenSettings(tokenSettings())
                .clientSettings(clientSettings())
                .build();
        // @formatter:on

        return new InMemoryRegisteredClientRepository(registeredClient);
    }
@Bean
    UserDetailsService users() {
        UserDetails user = User.withDefaultPasswordEncoder()
                .username("admin")
                .password("password")
                .build();
        return new InMemoryUserDetailsManager(user);
    }

@Bean
    public TokenSettings tokenSettings() {
        // @formatter:off
        return TokenSettings.builder()
                .accessTokenFormat(OAuth2TokenFormat.SELF_CONTAINED)
                .accessTokenTimeToLive(Duration.ofDays(jwtDuration))
                .refreshTokenTimeToLive(Duration.ofDays(45))
                .build();
        // @formatter:on
    }

   @Bean
    public ClientSettings clientSettings() {
        return ClientSettings.builder().build();
    }
@Bean
    public OAuth2TokenGenerator<? extends OAuth2Token> tokenGenerator() {
        NimbusJwtEncoder jwtEncoder = new NimbusJwtEncoder(jwkSource());
        JwtGenerator jwtGenerator = new JwtGenerator(jwtEncoder);
        jwtGenerator.setJwtCustomizer(tokenCustomizer());
        OAuth2AccessTokenGenerator accessTokenGenerator = new OAuth2AccessTokenGenerator();
        return new DelegatingOAuth2TokenGenerator(jwtGenerator, accessTokenGenerator);
    }

认证响应为

{
    "access_token": "eyJraWQiOiI1NWFhZjI3NS1lNDJhLTRkZmItYmNmOS02N2ZhYThjMjFhMzEiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIzNTI2IiwiYXVkIjoiMzUyNiIsIm5iZiI6MTY5NTU4NTUwNCwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwIiwiZXhwIjoxNjk4MTc3NTA0LCJpYXQiOjE2OTU1ODU1MDQsImF1dGhvcml0aWVzIjpbIlJPTEVfQ0xJRU5UIiwiUk9MRV9BRE1JTiJdLCJ1c2VybmFtZSI6Im1hcmlhQGdtYWlsLmNvbSJ9.fd08AvMCokiE7bFPaTStPSwGFC9L1qvuR0mDDe0FjkEv-7BwUZoUyj1F6zzYraR8nEjQDpYemVnVxyqTMQGBqetzg7sE6EiOm6GN3EV-Ymvu3Qi0Po4FGcbw46WHh1Qhi_ogbOWiGu9WqgBykK4fRMAR3ZtKJiLNuC-sYB91ctRghjuhxGUThdzoyySiKRrURTQs1yqR6FAgReQwm_iVNPl3IsJt4hlk_hajuavEJgGhwQ5AjHzx05Ik3YuKpknH9ZzYd8IQate9FV4twIkG5rUxp88i2LBkS-VPxKIxiutJm0fMSIbubpH9U-PDEOVEeSc2VXoOJxJhDq48ZgsMQg",
    "token_type": "Bearer",
    "expires_in": 2592000

谢谢!

java spring-boot authentication token refresh-token
1个回答
0
投票

这是文档。 建议您再读一遍。

© www.soinside.com 2019 - 2024. All rights reserved.