https://a.storyblok.com/f/270183/1368x665/09105c4754/26mar_dev-blog_silent-auth-video.jpg

Erstellen Sie passwortlose Video-Anmeldung mit Silent Auth und der Video API

Zuletzt aktualisiert am March 12, 2026

Lesedauer: 6 Minuten

Die passwortlose Video-Authentifizierung in Echtzeit verringert die Reibungsverluste vor Beginn einer Live-Sitzung und verbessert die Konversionsraten beim Onboarding. Passwörter und einmalige Codes können Benutzer ausbremsen. Dies erhöht das Risiko von Sitzungsabbrüchen.

Vonage Netzwerk-APIs verlagern die Authentifizierung auf die Ebene des Mobilfunknetzes und verringern so die Reibungsverluste. Mit Stille Authentifizierung (Silent Auth)-verfügbar über die Vonage Verify API-zur Verfügung steht, kann das System automatisch verifizieren, dass der Benutzer das Gerät besitzt, indem es den Netzwerkverkehr des Geräts analysiert, wodurch Echtzeit-Erlebnisse ohne Unterbrechung möglich sind.

In diesem Artikel sehen wir uns an, wie Silent Auth mit der Vonage Video API kombiniert werden kann. Vonage Video API kombiniert werden kann, um einen passwortlosen Onboarding-Flow für Echtzeit-Video zu erstellen. Dieses Tutorial erforscht ein wiederverwendbares Architekturmuster und enthält gezielte Codeschnipsel, die wichtige Implementierungsentscheidungen hervorheben.

TL;DR: Fahren Sie fort und finden Sie den Arbeitscode für dieses Beispiel auf GitHub.

Voraussetzungen

Um dieser Demo folgen zu können, benötigen Sie Folgendes:

  • Ein Vonage API-Konto.

  • Python 3.9 oder höher.

  • Android Studio.

  • Physisches Android-Gerät mit einer für mobile Daten geeigneten SIM-Karte.

Vonage API-Konto

Um dieses Tutorial durchzuführen, benötigen Sie ein Vonage API-Konto. Wenn Sie noch keines haben, können Sie sich noch heute anmelden und mit einem kostenlosen Guthaben beginnen. Sobald Sie ein Konto haben, finden Sie Ihren API-Schlüssel und Ihr API-Geheimnis oben auf dem Vonage-API-Dashboard.

  • Um eine Anwendung zu erstellen, gehen Sie auf die Seite Erstellen einer Anwendung auf dem Vonage Dashboard und legen Sie einen Namen für Ihre Anwendung fest.

  • Wenn Sie eine API verwenden möchten, die Webhooks nutzt, benötigen Sie einen privaten Schlüssel. Klicken Sie auf "Generate public and private key", der Download sollte automatisch starten. Bewahren Sie ihn sicher auf; dieser Schlüssel kann bei Verlust nicht erneut heruntergeladen werden. Er folgt der Namenskonvention privat_<Ihre App-ID>.key. Dieser Schlüssel kann nun zur Authentifizierung von API-Aufrufen verwendet werden. Hinweis: Ihr Schlüssel funktioniert erst, wenn Ihre Anwendung gespeichert ist.

  • Wählen Sie die benötigten Funktionen (z. B. Voice, Nachrichten, RTC usw.) und stellen Sie die erforderlichen Webhooks bereit (z. B. Ereignis-URLs, Antwort-URLs oder URLs für eingehende Nachrichten). Diese werden im Lernprogramm beschrieben.

  • Zum Speichern und Bereitstellen klicken Sie auf "Neue Anwendung generieren", um die Einrichtung abzuschließen. Ihre Anwendung ist nun bereit für die Verwendung mit Vonage-APIs.

So funktioniert die passwortlose Echtzeit-Video-Authentifizierung mit Silent Auth

Hier erfahren Sie, wie netzwerkbasierte Authentifizierung und Video-Onboarding zusammenarbeiten können, ohne eng miteinander verbunden zu sein.

Die App verifiziert die Telefonnummer eines Benutzers mit Silent Auth wenn unterstütztmit einer automatischen SMS Fallback nur bei Bedarf. Sobald die Verifizierung erfolgreich war, wird ein Video-Token generiert, und der Benutzer nimmt an der Sitzung teil.

Die Authentifizierung ist abgeschlossen, bevor das Video beginnt, so dass die Nutzer unabhängig von der Art der Verifizierung ein einheitliches Erlebnis haben.

In der Praxis sieht dieser Ablauf folgendermaßen aus:

Screenshot of the Silent Auth verification flow showing automatic device verification

Umgang mit Randfällen in der realen Welt

Silent Auth ist betreiberabhängig. Wenn der Mobilfunkbetreiber keine netzbasierte Verifizierung unterstützt, gibt die Verify API HTTP 412 zurück. Eine Liste der unterstützten Mobilfunkbetreiber nach Land finden Sie in der Dokumentation. Die unterstützten Betreiber variieren von Land zu Land und können sich im Laufe der Zeit ändern.

In dieser Demo-Anwendung wird SMS-Fallback auf der Anwendungsebene für nicht unterstützte Numbers implementiert. Zusätzlich zur SMS, andere Verifizierungskanäle wie RCS und WhatsApp ebenfalls zur Verfügung.

Für den produktiven Einsatz ist eine Registrierung bei der Netzwerk-Register erforderlich. In einer Testumgebung können Sie den Virtuellen Operator ohne ein physisches Gerät verwenden oder eine unterstützte Nummer in der Netzwerk-Registrierungsspielplatz registrieren und ein physisches Gerät damit verwenden.

Wichtige Implementierungsüberlegungen für Silent Auth

Mehrere Implementierungsdetails sind bei der Arbeit mit Silent Auth wichtig. Zusammen ermöglichen diese Elemente die Integration von Silent Auth auf vorhersehbare und UX-orientierte Weise.

  1. Silent Auth funktioniert nur, wenn die Verifizierungsanfrage über das Netz des Mobilfunkanbieters gesendet wird - nicht über Wi-Fi. Dies erfordert in der Regel die Integration einer clientseitigen Bibliothek die in der Lage ist, die Anfrage über Mobilfunkdaten zu erzwingen.

  2. In dieser Implementierung verlassen wir uns auf das Standard coverage_check=true Verhalten, um den Authentifizierungspfad zu bestimmen. Dieses Flag weist die Verify API an, vor Beginn der Verifizierung automatisch zu prüfen, ob Silent Auth für die angegebene Nummer unterstützt wird. Wenn die Nummer unterstützt wird, fährt die App mit Silent Auth fort; andernfalls wird auf die SMS-Verifizierung zurückgegriffen. Siehe diese Coverage Check Dokumentation für Details.

  3. Diese Implementierung verwendet Silent Auth synchroner Ablauf. In diesem Modell erhält das Backend die check_url direkt von der Verify API-Antwort, so dass keine Frontend-Callback-Behandlung erforderlich ist.

Wie das Backend und der Android-Client zusammenarbeiten

Bei dieser Implementierung ist das Python-Backend für den Verifizierungslebenszyklus verantwortlich und verwendet das Vonage Python SDK. Der Android-Kotlin-Client verwendet das Vonage Video Android SDK für die Sitzung, und eine Android-Bibliothek für das Betreibernetz zur Ausführung von Silent Auth's check_url über das Betreibernetz auszuführen.

1. Der Android-Client wird mit einer Backend-Basis-URL konfiguriert.

object ServerConfig {
    const val CHAT_SERVER_URL: String = "" // Replace with your backend URL
}

2. Retrofit verwendet diese Basis-URL, um die Backend-Verifikationsendpunkte aufzurufen.

retrofit = Retrofit.Builder()
    .baseUrl(ServerConfig.CHAT_SERVER_URL)
    .addConverterFactory(MoshiConverterFactory.create())
    .client(client)
    .build().also {
        apiService = it.create(APIService::class.java)
    }

3. Der Kunde kann anrufen und eine Rufnummer an das Backend senden.

apiService?.startVerify(StartVerifyRequest(phone_number = phoneNumber))

4. Das Backend leitet die Überprüfung ein. Mit coverage_check=true (Standard) ermittelt die Verify API, ob Silent Auth für den Zielbetreiber unterstützt wird.

  • Falls unterstützt, wird eine check_url zurückgegeben.

  • Wird dies nicht unterstützt, antwortet die Verify API mit HTTP 412, und das Backend schaltet explizit auf den SMS-Kanal um.

def verify_start(body: StartVerifyIn):
    try:
        silent_req = VerifyRequest(
            brand="DemoApp",
            workflow=[SilentAuthChannel(to=body.phone_number)],
            coverage_check=True # Checks whether Silent Auth is supported
        )

        verify_resp = client.verify.start_verification(silent_req) # Initiates Silent Auth verification

        return {
            "request_id": verify_resp.request_id,
            "check_url": getattr(verify_resp, "check_url", None),
            "channel": "silent_auth",
        }

    except HttpRequestError as e:
        if e.response and e.response.status_code == 412:
            sms_req = VerifyRequest(
                brand="DemoApp",
                workflow=[SmsChannel(to=body.phone_number)],
            )

            verify_resp2 = client.verify.start_verification(sms_req) # Fallback to SMS verification

            return {
                "request_id": verify_resp2.request_id,
                "channel": "sms",
            }

        raise

5. Das Backend gibt den ausgewählten Kanal zusammen mit den vom Kunden benötigten Identifikatoren zurück.

{
    "channel": "silent_auth",
    "request_id": "...",
    "check_url": "https://..."

  • Kanal teilt dem Client mit, welchen UI-Pfad er nehmen soll (silent_auth oder sms).

  • request_id wird später benötigt, um das Ergebnis der Überprüfung zu bestätigen.

  • check_url ist nur vorhanden, wenn silent_auth ausgewählt ist.

6. Falls silent_auth, führt Android die Funktion check_url über das Betreibernetz aus.

Silent Auth erfordert, dass der Redirect-Flow über das Netz des Mobilfunkanbieters läuft, nicht über Wi-Fi. Der Android-Client verwendet die Cellular-Request-Bibliothek, um diese Anfrage über mobile Daten zu erzwingen. Die vollständige Implementierung von runSilentAuthCheck(), einschließlich der Ausführung über das Mobilfunknetz und der Bearbeitung der Antworten, ist im GitHub-Repository.

when (body.channel) {
    "silent_auth" -> runSilentAuthCheck()
    "sms" -> showSmsUi(true)
}

7. Android sendet den Code an das Backend, um die Verifizierung zu bestätigen

Der Client entscheidet nicht selbständig über den Erfolg. Stattdessen leitet er den Code an das Backend weiter, das die Fertigstellung mit der Verify API bestätigt.

apiService?.confirmVerify(ConfirmVerifyRequest(request_id = rid, code = code))

Am Backend entspricht dies einem Verify API-Bestätigungsaufruf. Das Backend gibt einen einfachen Status zurück, damit der Client fortfahren kann.

def verify_confirm_silent(body: ConfirmVerifyIn):
    verify_response = client.verify.check_code(body.request_id, body.code)
    if isinstance(verify_response, str):
        return {"status": verify_response}

    return {"status": getattr(verify_response, "status", str(verify_response))}

Wenn der Status "abgeschlossen" lautet, ist die Überprüfung beendet. Andernfalls bleibt die App im Authentifizierungsfluss (erneuter Versuch / erneute Codeeingabe).

8. Nach Abschluss der Überprüfung stellt das Backend ein Video-Token aus.

token_options = TokenOptions(
    session_id=os.environ["VONAGE_VIDEO_SESSION_ID"], role="publisher"
)

token = client.video.generate_client_token(token_options)

return {
    "apiKey": os.environ["VONAGE_APPLICATION_ID"],
    "sessionId": os.environ["VONAGE_VIDEO_SESSION_ID"],
    "token": token,
}

9. Der Android-Client initialisiert dann das Video Android SDK und tritt der Sitzung mit den ausgegebenen Anmeldedaten bei.

if (status == "completed") {
    initializeSession(apiKey, sessionId, token)
}

Erweitern dieses Musters über APIs und Plattformen hinweg

Die hier vorgestellte Implementierung verwendet ein Python-Backend und Android, um Silent Auth und die Video API-Funktionen zu verbinden, aber diese Architektur kann für viele andere Muster verwendet werden.

Jenseits der stillen Autorisierung

Silent Auth ist nur eine von mehreren Netzwerk-APIs. Andere Netzwerksignale - wie z.B. SIM-Tausch oder Gerätestandort - können vor der Gewährung des Zugriffs ausgewertet werden. Sie könnten eine SIM-Swap-Validierung verlangen, bevor Sie den Zugriff auf hochwertige Videokonsultationen erlauben. Jede API liefert ein Vertrauenssignal, während die Anwendung entscheidet, wie sie darauf reagiert.

Verify ist nicht Python-spezifisch

Obwohl dieser Artikel die Verifizierung mit dem Python-SDK von Vonage Verify demonstriert, kann derselbe Verify-Ablauf auch mit anderen unterstützten Server-seitigen SDKsimplementiert werden, darunter Node.js, PHP und andere. Das Architekturmuster bleibt unverändert. Wir haben auch ein funktionierendes Beispiel für Silent Auth innerhalb des gerüstbasierten Workflows von Laravel PHP.

Trägergestützte Ausführung unter iOS

In diesem Beispiel wird Android für die Netzbetreiber-basierte Ausführungverwendet wird, ist es auch verfügbar für iOS. Silent Auth erfordert immer noch, dass die Anfrage über das Netz des Mobilfunkanbieters und nicht über Wi-Fi ausgeführt wird, unabhängig von der Plattform.

Video SDK ist plattformübergreifend

Die Video-Sitzungsschicht ist nicht Android-spezifisch. Das Vonage Video SDK ist verfügbar für alle Plattformeneinschließlich iOS, so dass das gleiche Muster "erst verifizieren, dann verbinden" konsistent angewendet werden kann.

Schlussfolgerung

In diesem Tutorial haben Sie einen passwortlosen Echtzeit-Videoauthentifizierungsablauf mit Silent Auth und der Vonage Video API erstellt. Durch die Trennung der Verifizierung von der Sitzungsinitialisierung gewinnen Sie Flexibilität, Sicherheit und ein zukunftssicheres Authentifizierungsdesign.

Haben Sie eine Frage oder möchten Sie uns mitteilen, was Sie gerade bauen?

Bleiben Sie auf dem Laufenden und halten Sie sich über die neuesten Nachrichten, Tipps und Veranstaltungen für Entwickler auf dem Laufenden.

Teilen Sie:

https://a.storyblok.com/f/270183/1024x1024/e2a854c044/yukari-dumburs.png
Yukari DumbursVideo API Support Ingenieur

Yukari ist Senior Support Engineer bei Vonage und gehört seit fünf Jahren zum Video API Support Engineering Team. Ihr Hintergrund in der Server- und Anwendungsentwicklung hilft ihr, technische Tiefe mit Kundenerfolg zu verbinden.