Applikationer med Firebase Auth och Realtime Database · Lektion

Anonym och anpassad autentisering

Utforska anonym autentisering för tillfälliga användare och lär dig implementera anpassade autentiseringssystem med Firebase

Lektion 3 av 411 steg

Anonym och anpassad autentisering är en gratis lektion i Applikationer med Firebase Auth och Realtime Database på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Applikationer med Firebase Auth och Realtime Database, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Applikationer med Firebase Auth och Realtime Database innehåller totalt 4 lektioner.

Anonym och anpassad autentisering

Välkommen till en lektion om avancerade autentiseringsmetoder! Vi ska utforska två kraftfulla funktioner i Firebase:

  • Anonym autentisering: För tillfälliga användare som ännu inte vill registrera sig.
  • Anpassad autentisering: För att integrera Firebase Auth med dina befintliga användarsystem.

Nu börjar vi!

Vad är anonym autentisering?

Anonym autentisering låter användare logga in utan att ange autentiseringsuppgifter, till exempel e-postadress eller sociala konton. Firebase skapar ett tillfälligt anonymt konto åt dem.

Det passar perfekt för:

  • Gästlägen i appar.
  • Att låta användare prova funktioner innan de registrerar ett fullständigt konto.
  • Att spara framsteg tillfälligt utan att kräva ett konto.

Implementera anonym inloggning

Det är enkelt att logga in anonymt. Firebase SDK hanterar skapandet av den tillfälliga användaren åt dig.

Prova att köra det här exemplet för att se en simulerad anonym inloggning:

class FirebaseAuth {
  static FirebaseAuth getInstance() { return new FirebaseAuth(); }
  void signInAnonymously() {
    System.out.println("Attempting anonymous sign-in...");
    try { Thread.sleep(100); } catch (InterruptedException e) {}
    System.out.println("Anonymous user signed in!");
    System.out.println("Temporary User ID: guest_123abc");
  }
}

public class Main {
  public static void main(String[] args) {
    FirebaseAuth auth = FirebaseAuth.getInstance();
    auth.signInAnonymously();
  }
}

Uppgradera anonyma konton

Anonyma konton är tillfälliga. Vad händer om användaren bestämmer sig för att registrera sig senare?

Med Firebase kan du länka ett anonymt konto till ett permanent konto, till exempel med e-postadress/lösenord eller Google. Användarens data och framsteg från den anonyma sessionen kopplas då till det nya permanenta kontot.

Det gör du med metoder som linkWithCredential() eller linkWithPopup() när användaren har angett permanenta autentiseringsuppgifter.

Introduktion till anpassad autentisering

Anpassad autentisering används när du redan har ett eget system för användarhantering eller vill integrera Firebase Auth med en komplex backend.

I stället för att Firebase hanterar användarregistreringen direkt autentiserar din backend användaren och utfärdar sedan en särskild anpassad token. Klientappen använder därefter denna token för att logga in på Firebase.

Anpassad autentisering: flödet

Så här fungerar anpassad autentisering:

  1. Användaren loggar in via din app och skickar autentiseringsuppgifter till din backend.
  2. Din backend verifierar autentiseringsuppgifterna, till exempel mot din egen databas.
  3. Om verifieringen lyckas använder din backend Firebase Admin SDK för att skapa en anpassad token för användaren.
  4. Din backend skickar den anpassade token tillbaka till klientappen.
  5. Klientappen använder Firebase client SDK för att logga in med den anpassade token.

Generera anpassade token (backend)

Det kritiska steget på servern är att generera den anpassade token med Firebase Admin SDK. Av säkerhetsskäl måste detta SDK initieras med tjänstekontots autentiseringsuppgifter för ditt Firebase-projekt.

Här ser du konceptuellt hur din backend kan generera en token (den här koden körs på servern, inte i appen):

// This code runs on your secure backend server,
// NOT in your client-side application.
// It requires the Firebase Admin SDK.

// import com.google.firebase.auth.FirebaseAuth;

public class BackendCustomToken {
  // This method would be part of your server logic.
  public static String generateToken(String userId) {
    try {
      // In a real app:
      // return FirebaseAuth.getInstance().createCustomToken(userId);
      
      // For this example, we simulate it:
      String token = "mock_token_for_" + userId + "_123xyz";
      System.out.println("Backend generated token for " + userId);
      return token;
    } catch (Exception e) {
      System.err.println("Backend error: " + e.getMessage());
      return null;
    }
  }

  public static void main(String[] args) {
    // This main method is just to illustrate the concept.
    // In reality, this logic is triggered by an API call.
    String userId = "userFromYourDB";
    String customToken = generateToken(userId);
    if (customToken != null) {
      System.out.println("Backend is ready to send this token: " + customToken);
    }
  }
}

Logga in med en anpassad token (klient)

När klientappen har tagit emot den anpassade token från din backend använder den Firebase client SDK:s metod signInWithCustomToken() för att slutföra autentiseringsprocessen.

Kör det här exemplet för att se hur appen använder token för att logga in:

class FirebaseAuth {
  static FirebaseAuth getInstance() { return new FirebaseAuth(); }
  void signInWithCustomToken(String token) {
    System.out.println("Attempting sign-in with custom token...");
    if (token != null && !token.isEmpty()) {
      try { Thread.sleep(100); } catch (InterruptedException e) {}
      System.out.println("Signed in with custom token successfully!");
      System.out.println("User ID: custom_user_xyz");
    } else {
      System.out.println("Error: Custom token is missing.");
    }
  }
}

public class Main {
  public static void main(String[] args) {
    FirebaseAuth auth = FirebaseAuth.getInstance();
    // Imagine this token comes from your backend
    String customToken = "YOUR_CUSTOM_TOKEN_FROM_BACKEND";
    auth.signInWithCustomToken(customToken);
  }
}

Fördelar med anpassad autentisering

Anpassad autentisering ger betydande fördelar:

  • Flexibilitet: Integrera med nästan vilken befintlig användardatabas eller identitetsleverantör som helst.
  • Kontroll: Behåll full kontroll över logiken för användarregistrering och inloggning i din backend.
  • Migration: Migrera enkelt befintliga användare till Firebase utan att tvinga dem att registrera sig på nytt.
  • Komplexa arbetsflöden: Implementera avancerade autentiseringsflöden som kanske inte stöds direkt av Firebase inbyggda leverantörer.

Snabbtest: autentiseringsmetoder

Vilka av följande påståenden om anonym och anpassad autentisering i Firebase är sanna?

Sammanfattning: tillfällig och flexibel autentisering

Bra jobbat! I den här lektionen utforskade vi två kraftfulla sätt att hantera användarautentisering:

  • Anonym autentisering: Perfekt för gästanvändare och för att utforska appen, med möjlighet att uppgradera till ett permanent konto.
  • Anpassad autentisering: Ger maximal flexibilitet genom att låta din backend hantera användarverifiering och utfärda anpassade Firebase-token.

Med dessa metoder kan du anpassa appens autentiseringsupplevelse efter många olika behov. Fortsätt bygga fantastiska appar!

Gratis att börja

Lär dig Applikationer med Firebase Auth och Realtime Database med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
11
Lektioner
44

Vanliga frågor

Är lektionen ”Anonym och anpassad autentisering” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Applikationer med Firebase Auth och Realtime Database, inklusive ”Anonym och anpassad autentisering”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Applikationer med Firebase Auth och Realtime Database innehåller totalt 4 lektioner.

Vad lär jag mig i ”Anonym och anpassad autentisering”?

Utforska anonym autentisering för tillfälliga användare och lär dig implementera anpassade autentiseringssystem med Firebase Ni övar på Applikationer med Firebase Auth och Realtime Database med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Applikationer med Firebase Auth och Realtime Database?

Du behöver inga förkunskaper. Utbildningen i Applikationer med Firebase Auth och Realtime Database på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Anonym och anpassad autentisering”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Applikationer med Firebase Auth och Realtime Database-lektionen?

Ja. Varje Applikationer med Firebase Auth och Realtime Database-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Integrera Google Sign-In
  2. Autentisering med Facebook och GitHub
  3. Anonym och anpassad autentisering
  4. Integrering av Apple Sign-In
← Tillbaka till Applikationer med Firebase Auth och Realtime Database