【问题标题】:Is it possible to get refresh token using OidcUserRequest?是否可以使用 OidcUserRequest 获取刷新令牌?
【发布时间】:2021-04-11 10:15:27
【问题描述】:

我在 Oauth2UserService 实现类中从 OidcUserRequest 加载 oidcUser。

@Override
    public OidcUser loadUser(OidcUserRequest userRequest) throws OAuth2AuthenticationException {
        OidcUser user = delegate.loadUser(userRequest);
        List<GrantedAuthority> rolesAsAuthorities = getRolesAsAuthorities(user);
        
        CustomOidcUserDetailsImpl customUser = new CustomOidcUserDetailsImpl(user, rolesAsAuthorities);
        customUser.setFullName(getFullName(user));
        customUser.setTelephone(getTelephone(user));
        customUser.setEmail(getEmail(user));
        return customUser;
    }

问题是我只能从 OidcUserRequest 获得 OauthAccessTokenIdToken。有没有办法在我的服务中获取 Oauth2RefreshToken
如果我手动将 授权码 换成令牌,我会得到 id,access,refresh tokens

【问题讨论】:

    标签: spring-boot spring-security openid-connect spring-security-oauth2 oauth2client


    【解决方案1】:
        @Autowired
        private OAuth2AuthorizedClientService authorizedClientService;
    
        Authentication authentication =SecurityContextHolder.getContext().getAuthentication();
            OAuth2AuthorizedClient client = authorizedClientService
                    .loadAuthorizedClient(
                            "wso2", // client registrationId
                            authentication.getName());
        Oauth2RefreshToken refreshToken = client.getRefreshtoken();
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-25
      • 2019-10-26
      • 2015-07-19
      • 2020-07-31
      • 2019-05-15
      • 2015-04-10
      • 2019-02-25
      • 2018-10-01
      相关资源
      最近更新 更多