Ich implementiere die OAuth2 -Anmeldung in meiner Spring Boot 3 -Anwendung mit GitHub als Authentifizierungsanbieter. Ich kann jedoch nicht die E -Mail des Benutzers von GitHub abrufen - es kehrt immer NULL zurück. Ich werde auf die Onboarding-Seite geleitet, auf der sie Details wie UserType-Recruiter oder Jobseeker usw. eingeben Umfang: < /p>
Ich implementiere die OAuth2 -Anmeldung in meiner Spring Boot 3 -Anwendung mit GitHub als Authentifizierungsanbieter. Ich kann jedoch nicht die E -Mail des Benutzers von GitHub abrufen - es kehrt immer NULL zurück. Ich werde auf die Onboarding-Seite geleitet, auf der sie Details wie UserType-Recruiter oder Jobseeker usw. eingeben Umfang: < /p> [code]yaml Copy Edit security: oauth2: client: registration: github: client-id: xxx client-secret: xxx redirect-uri: "{baseUrl}/login/oauth2/code/{registrationId}" scope: user:email < /code> Einstellungen für Github -Profile geprüft: < /p> Meine E -Mail ist in GitHub auf "public" gesetzt. BR /> Das E -Mail -Feld fehlt (NULL), andere Details wie Name und ID sind verfügbar. Warum ist es Githubs OAuth2 -Antwort ohne die E -Mail, auch wenn meine E -Mail öffentlich ist? Hier ist, wie ich versucht habe, Benutzerdetails aus dem Zugriffs-Token zu holen.@Service @RequiredArgsConstructor public class CustomOauth2UserService extends DefaultOAuth2UserService { private static final Logger log = LoggerFactory.getLogger(CustomOauth2UserService.class); private final UserConnectedAccountRepository userConnectedAccountRepository; private final UserRepository userRepository;
private void connectAccount(String providerId, String provider, AppUser appUser) { UserConnectedAccount newUserConnectedAccount = new UserConnectedAccount(providerId, provider, appUser); userConnectedAccountRepository.save(newUserConnectedAccount); } } < /code> Und hier ist meine Sicherheitskonfiguration. Ich verwende eine Sitzungsbasis-Authentifizierung.@Configuration @RequiredArgsConstructor @EnableWebSecurity public class SecurityConfig { private final UserService userService; private final PasswordEncoder passwordEncoder; private final GlobalAuthenticationEntryPoint globalAuthenticationEntryPoint; private final Oauth2LoginSuccessHandler oauth2LoginSuccessHandler; private final CustomOauth2UserService customOauth2UserService;
@Bean public AuthenticationManager authenticationManager() { var authenticationProvider = new DaoAuthenticationProvider(passwordEncoder); authenticationProvider.setUserDetailsService(userService); return new ProviderManager(authenticationProvider); }
@Bean public SecurityContextRepository SecurityContextRepository() { return new HttpSessionSecurityContextRepository(); }
@Bean public SecurityContextLogoutHandler securityContextLogoutHandler() { return new SecurityContextLogoutHandler(); } } [/code]
Ich implementiere die OAuth2 -Anmeldung in meiner Spring Boot 3 -Anwendung mit GitHub als Authentifizierungsanbieter. Ich kann jedoch nicht die E -Mail des Benutzers von GitHub abrufen - es kehrt...
Ich stelle eine Flask -Anwendung für die Google App Engine (Standardumgebung, Python 3.9) bereit. /> gcloud app describe --format=json | jq '.envVariables'
returns:
Basierend auf den Spring -Tipps YouTube Video Spring Tipps: Der Frühlingsautorisierungsserver, den ich das Setup aus didaktischen Gründen vereinfachen möchte. Vor dem Unterrichten von...
Ich habe ein altes Spring Boot-Projekt geerbt. Im Projekt melden wir uns über einen Unternehmens-OIDC-Server an. Spring Boot stellt sicher, dass wir authentifiziert sind, und verfügt dann über einige...
Ich versuche, eine symmetrische und asymmetrische Verschlüsselung in einem Programm zu implementieren, das die Möglichkeit hat, Dateien zu vergrößen und zu verschlüsseln und dann zu überprüfen und zu...