Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Die WebOTP API bietet eine vereinfachte Benutzererfahrung für Webanwendungen, um zu überprüfen, dass eine Telefonnummer zu einem Benutzer gehört, wenn sie als Anmeldefaktor verwendet wird. WebOTP ist eine Erweiterung der Credential Management API.
Die Verifizierung erfolgt in einem zweistufigen Prozess:
Telefonnummern werden oft verwendet, um den Benutzer einer App zu identifizieren. Häufig wird eine SMS geschickt, um zu überprüfen, dass die Nummer zum Benutzer gehört. Die SMS enthält normalerweise ein OTP, das der Benutzer kopieren und in ein Formular in der App einfügen muss, um zu bestätigen, dass er die Nummer besitzt. Dies ist eine etwas umständliche Benutzererfahrung.
Anwendungsfälle für OTP umfassen:
Die WebOTP API ermöglicht es Webanwendungen, diesen Validierungsprozess zu beschleunigen, indem das OTP aus der SMS kopiert und nach der Zustimmung des Benutzers automatisch an die App weitergeleitet wird (die meisten nativen Plattformen haben eine entsprechende API).
Beachten Sie, dass ein OTP an die sendende Domain gebunden ist. Dies ist eine nützliche Sicherheitsbeschränkung, um zu überprüfen, dass das OTP von der richtigen Quelle stammt, was das Risiko von Phishing-Angriffen während der täglichen Reauthentifizierung verringern kann.
SMS OTPs sind nützlich zur Verifizierung von Telefonnummern, und die Verwendung von SMS als zweiten Faktor ist sicherlich besser, als keinen zweiten Faktor zu haben. In einigen Regionen sind andere Identifikatoren wie E-Mail-Adressen und Authentifikatoren nicht weit verbreitet, daher sind SMS OTPs sehr häufig.
Jedoch sind SMS nicht besonders sicher. Angreifer können eine SMS fälschen und die Telefonnummer einer Person übernehmen. Anbieter können Telefonnummern nach Schließung eines Kontos an neue Benutzer weitergeben.
Es wird daher empfohlen, eine stärkere Form der Authentifizierung zu verwenden, wenn möglich, wie eine auf der Web Authentication API basierende Lösung, die ein Passwort und einen Sicherheitsschlüssel oder einen Zugangsschlüssel beinhaltet.
Der Prozess funktioniert wie folgt:
Eine typische SMS-Nachricht sieht folgendermaßen aus:
Your verification code is 123456. @www.example.com #123456Hinweis: Der angegebene Domain-Wert darf kein URL-Schema, keinen Port oder andere nicht oben gezeigte URL-Features enthalten.
Wenn die get()-Methode von einer eingebetteten Drittanbieter-Website in einem <iframe> aufgerufen wird, sollte die SMS-Struktur sein:
Your verification code is 123456. @top-level.example.com #123456 @embedded.comIn diesem Fall muss die letzte Zeile bestehen aus:
Die Verfügbarkeit von WebOTP kann durch Verwendung einer Permissions Policy gesteuert werden, die eine otp-credentials-Direktive spezifiziert. Diese Direktive hat standardmäßig einen Allowlist-Wert von "self", was bedeutet, dass diese Methoden standardmäßig in Top-Level-Dokumentkontexten verwendet werden können.
Sie könnten eine Direktive angeben, um die Nutzung von WebOTP in einer bestimmten, domänenübergreifenden Domain zu erlauben (d.h. innerhalb eines <iframe>) wie folgt:
Oder Sie könnten es direkt im <iframe> angeben wie folgt:
Hinweis: Wo eine Richtlinie die Nutzung von WebOTP get() verbietet, werden die von ihm zurückgegebenen promises mit einem SecurityError DOMException zurückgewiesen.
Wird zurückgegeben, wenn ein WebOTP get()-Aufruf erfüllt wird; enthält eine code-Eigenschaft, die das abgerufene OTP enthält.
Das Aufrufen von get() mit einer otp-Option weist den Benutzeragenten an, zu versuchen, ein OTP aus der SMS-App des zugrunde liegenden Systems abzurufen.
In diesem Beispiel wird, wenn eine SMS-Nachricht ankommt und der Benutzer die Erlaubnis erteilt, ein OTPCredential-Objekt mit einem OTP zurückgegeben. Dieses Passwort wird dann in das Verifizierungsformularfeld vorausgefüllt und das Formular wird eingereicht.
Probieren Sie dieses Demo mit einem Telefon aus.
Das Formularfeld enthält ein autocomplete-Attribut mit dem Wert one-time-code. Dies ist nicht erforderlich, damit die WebOTP API funktioniert, aber es ist sinnvoll, es zu inkludieren. Dadurch wird Safari den Benutzer auffordern, dieses Feld mit dem OTP automatisch auszufüllen, wenn eine korrekt formatierte SMS empfangen wird, obwohl die WebOTP API nicht vollständig in Safari unterstützt wird.
Das JavaScript sieht wie folgt aus:
Eine weitere gute Verwendung für den AbortController ist es, die get()-Anfrage nach einer bestimmten Zeitspanne abzubrechen:
Wenn der Benutzer abgelenkt wird oder woanders hin navigiert, ist es sinnvoll, die Anfrage abzubrechen, damit er nicht mit einer Erlaubnisaufforderung konfrontiert wird, die für ihn nicht mehr relevant ist.
| WebOTP API |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.