gpt4 book ai didi

java - OAuth2 Spring boot 缺少必需的“用户名

转载 作者:行者123 更新时间:2023-12-01 16:50:27 28 4
gpt4 key购买 nike

我正在尝试使用 Spring Boot OAuth 通过 Zoom 在我的应用程序上进行授权 ( https://marketplace.zoom.us/docs/guides/auth/oauth )

我正在尝试打开页面(/zoom 端点),我的应用程序将我重定向到 Zoom。在这里,我输入了 Zoom 帐户,Spring 将我重定向到错误页面:

[missing_user_name_attribute] Missing required "user name" attribute name in UserInfoEndpoint for Client Registration: zoom

不知道如何处理。这是我的代码

配置

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/", "/login**", "/error**").permitAll()
.anyRequest().authenticated()
.and().logout().logoutUrl("/logout").logoutSuccessUrl("/")
.and().oauth2Login();
}

@Bean
public ClientRegistrationRepository clientRegistrationRepository() {
List<ClientRegistration> registrations = new ArrayList<>();
registrations.add(zoomClientRegistration());
return new InMemoryClientRegistrationRepository(registrations);
}

private ClientRegistration zoomClientRegistration() {
return ClientRegistration.withRegistrationId("zoom")
.clientId(/**myClientId**/)
.clientSecret(/**{myClientSecret}**/)
.clientAuthenticationMethod(ClientAuthenticationMethod.BASIC)
.authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE)
.redirectUriTemplate("{baseUrl}/login/oauth2/code/{registrationId}")
.authorizationUri("https://zoom.us/oauth/authorize")
.tokenUri("https://zoom.us/oauth/token")
.userInfoUri("https://api.zoom.us/v2/user")
.clientName("Zoom").build();
}
}

在 Zoom 应用程序中我已配置

OAuth 重定向 URL:http://{my_host_name}/login/oauth2/code/zoom

白名单网址:http://{my_host_name}/zoom

我的应用程序的端点位于 /zoom

最佳答案

您必须在 ClientRegistration 添加 userNameAttributeName 并设置为正确的用户名属性,它可以是 openId 的“sub”,但也可以是“email”、“id”等不同的内容,请检查 https://api.zoom.us/v2/user响应以查找哪个属性匹配。

问候

关于java - OAuth2 Spring boot 缺少必需的“用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61700800/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com