簡體   English   中英

OAuth2 Spring boot 缺少必需的“用戶名”

[英]OAuth2 Spring boot Missing required "user name

我正在嘗試使用 Spring Boot OAuth 通過 Zoom 在我的應用程序上進行授權( https://marketplace.zoom.us/docs/guides/auth

我正在嘗試打開頁面( /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響應以查找匹配的屬性。

問候

對我來說,當我嘗試使用Spotify Oauth2.0 和 Spring Boot 2.5.4 進入經過身份驗證的端點(在我的 java 應用程序中)時,會發生異常。 我缺少財產:

spring.security.oauth2.client.provider.spotify.userNameAttribute=email

這在spring Oauth2 文檔中有所描述

缺少屬性也會發生類似的異常:

spring.security.oauth2.client.provider.spotify.user-info-uri=https://api.spotify.com/v1/me然后拋出異常: [missing_user_info_uri] Missing required UserInfo Uri in UserInfoEndpoint for Client Registration: spotify

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM