Spring Security 6 og JWT-godkendelse · Lektion

Integration af socialt login

Integrer populære providers til socialt login (f.eks. Google og GitHub) i Deres applikation ved hjælp af Spring Securitys OAuth2-client.

Lektion 2 af 411 trin

Integration af socialt login er en gratis Spring Security 6 og JWT-godkendelse-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Spring Security 6 og JWT-godkendelse, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Spring Security 6 og JWT-godkendelse-kurset indeholder 4 lektioner i alt.

Socialt login: Nem adgang

Velkommen til socialt login! Har du nogensinde set knapper som "Log ind med Google" eller "Log ind med GitHub"? Det er socialt login i praksis.

Det giver brugerne mulighed for at logge ind i din applikation med deres eksisterende konti hos populære identitetsudbydere. Det betyder mindre besvær for brugerne og ingen nye adgangskoder, de skal huske!

Spring Security gør det enkelt

Det kan være besværligt at integrere socialt login manuelt, fordi det involverer mange omdirigeringer og tokenudvekslinger. Men bare rolig!

Spring Security har stærk, indbygget understøttelse af OAuth2-klienter. Det håndterer det meste af det komplekse flow for dig, så det er enkelt at tilføje udbydere som Google, GitHub eller Facebook.

Din app som OAuth2 Client

I forbindelse med socialt login fungerer din applikation som en OAuth2 Client. Denne client skal registreres hos den sociale identitetsudbyder (som er Authorization Server).

Denne registreringsproces giver din applikation unikke legitimationsoplysninger: et Client ID og en Client Secret.

Registrering hos Google (del 1)

Lad os bruge Google som et praktisk eksempel. Hvis du vil aktivere Google-login, skal du først registrere din applikation i Google Cloud Console.

  • Opret et nyt projekt.
  • Gå til APIs & Services > OAuth consent screen for at konfigurere de oplysninger, brugerne skal se.

Det fortæller Google, hvem din app er, og hvad den vil gøre.

Registrering hos Google (del 2)

Derefter opretter du legitimationsoplysninger for et OAuth client ID. Vælg 'Web application' som applikationstype.

Det vigtigste trin er at angive 'Authorized redirect URIs'. Det er her, Google sender brugeren tilbage efter vellykket godkendelse.

  • Til lokal udvikling er det ofte http://localhost:8080/login/oauth2/code/google.
  • Du får et Client ID og en Client Secret – opbevar dem sikkert!

Spring Boot-konfiguration

Med dit Google Client ID og din Secret kan du nu konfigurere filen application.properties (eller .yml) i din Spring Boot-applikation.

Spring Security bruger en konvention til navngivning af disse egenskaber. Du skal blot erstatte pladsholderværdierne med dine faktiske legitimationsoplysninger.

spring.security.oauth2.client.registration.google.client-id=YOUR_GOOGLE_CLIENT_ID
spring.security.oauth2.client.registration.google.client-secret=YOUR_GOOGLE_CLIENT_SECRET

Minimal sikkerhedskonfiguration

Hvis du vil aktivere OAuth2-socialt login, skal du have en grundlæggende Spring Security-konfiguration. Spring Boots standardindstillinger er meget nyttige her.

Ved blot at kalde .oauth2Login() på dit HttpSecurity-objekt konfigurerer Spring Security automatisk de nødvendige filtre og endpoints til at håndtere OAuth2-flowet.

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.web.SecurityFilterChain;

@Configuration
@EnableWebSecurity
public class SecurityConfig {

  @Bean
  public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
    http
      .authorizeHttpRequests(authorize -> authorize
        .anyRequest().authenticated() // Require authentication for all requests
      )
      .oauth2Login(oauth2 -> oauth2
        // Spring Security provides a default login page with social login links
      );
    return http.build();
  }
}

Siden til socialt login

Når konfigurationen er på plads, genererer Spring Security automatisk en loginside på /login (hvis der ikke er angivet en tilpasset login-side).

Denne side indeholder links til hver konfigureret social udbyder. Når en bruger klikker på et link, omdirigeres vedkommende til udbyderen for at blive godkendt.

<p>Conceptual HTML for a login link:</p>
<code>&lt;a href="/oauth2/authorization/google"&gt;Login with Google&lt;/a&gt;</code>
<p>Spring Security handles the redirection to Google and processes the response.</p>

Adgang til brugeroplysninger

Efter et vellykket socialt login udfylder Spring Security SecurityContext med oplysninger om den godkendte bruger.

Du kan injicere et OAuth2User-objekt i dine controllere for at få adgang til oplysninger som brugerens navn, e-mail eller andre attributter fra den sociale identitetsudbyder.

import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.security.oauth2.core.user.OAuth2User;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

// This is a snippet of a Spring Boot controller.
// It needs a full Spring Boot application context to run.
@RestController
public class UserController {

  @GetMapping("/user-info")
  public String getUserInfo(@AuthenticationPrincipal OAuth2User oauth2User) {
    if (oauth2User != null) {
      String name = oauth2User.getAttribute("name");
      String email = oauth2User.getAttribute("email");
      return "Hello, " + name + "! Your email is " + email + ".";
    }
    return "User not authenticated via social login.";
  }
}

Quiz om socialt login

Du har lært, hvordan du konfigurerer socialt login! Lad os teste din forståelse af de centrale komponenter.

Opsummering af socialt login

Godt gået! Du har lært, hvordan du integrerer socialt login i din Spring Boot-applikation ved hjælp af Spring Securitys OAuth2-klientunderstøttelse.

  • Vi forstod fordelene ved socialt login og Spring Securitys rolle.
  • Vi gennemgik, hvordan du konfigurerer din app som en OAuth2 Client og registrerer den hos en udbyder som Google.
  • Du så, hvordan du konfigurerer application.properties og aktiverer .oauth2Login() i din sikkerhedskæde.
  • Til sidst lærte du, hvordan du får adgang til oplysninger om godkendte brugere ved hjælp af OAuth2User-objektet.

Socialt login forbedrer brugeroplevelsen markant og forenkler godkendelsen!

Gratis at komme i gang

Lær Java med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Integration af socialt login” gratis?

Ja — alle 3 lektioner i læringssporet Spring Security 6 og JWT-godkendelse, inklusive “Integration af socialt login”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Spring Security 6 og JWT-godkendelse-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Integration af socialt login”?

Integrer populære providers til socialt login (f.eks. Google og GitHub) i Deres applikation ved hjælp af Spring Securitys OAuth2-client. Du øver dig i Spring Security 6 og JWT-godkendelse med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Spring Security 6 og JWT-godkendelse?

Der kræves ingen tidligere erfaring. Spring Security 6 og JWT-godkendelse på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “Integration af socialt login”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Spring Security 6 og JWT-godkendelse-lektion?

Ja. Alle Spring Security 6 og JWT-godkendelse-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Opsætning af OAuth2-client
  2. Integration af socialt login
  3. Brugerdefineret OAuth2-success handler
  4. Adgang til den godkendte OAuth2-bruger
← Tilbage til Spring Security 6 og JWT-godkendelse