Einbindung
Zwei-Faktor-Authentifizierung Optin
Voraussetzung
Legen Sie zunächst ein Konto auf BerlinSMS an, um Zwei-Faktor-Authentifizierung Optin verwenden zu können. Loggen Sie sich anschließend auf https://app.berlinsms.de ein und laden sie sich den Sitekey und den Secretkey herunter.
Einbindungen
Clientseitig – per React-Komponente
Clientseitig – per HTML/JS
Die Einbindung der Zwei-Faktor-Authentfizierung setzt ein HTML-Formular für die Registrierung der User voraus.
Beispiel: https://samples.berlinsms.de/twofa-optin/demo-form-noWidget.html
Unser Widget fügt ein Formularfeld hinzu, in dass der Seitenbenutzer seine Telefonnummer eintragen kann. Die Verifizierung der Nummer erfolgt noch vor dem Abschicken des Registrierungsformulars.
Um das Widget zu integrieren, binden Sie folgenden JavaScript-Tag (
Serverseitig – per PHP
Downloaden und entpacken Sie die TwoFA-Optin-Bibliothek von BerlinSMS:
Link: https://static.berlinsms.de/twofa/twofa-optin.zip
Laden Sie die dekomprimierte PHP-Datei in Ihren Webspace hoch und binden Sie sie in Ihrem Projekt ein:
include 'twofa/twofa-optin.php';
Integrieren Sie anschließend den privaten Schlüssel (Sitekey) von BerlinSMS in Ihren Code.
Link: Wie erhalte ich einen Sitekey?
define("TWOFA_Secretkey", "[Secret-Key]");
Erzeugen Sie ein Objekt der importierte Klasse „TwofaOptin“. Übergeben Sie den Secretkey als Parameter:
$twofaChallenge = new TwofaOptin(TWOFA_Secretkey);
Lesen Sie den POST-Parameter aus, den Sie vom Formular erhalten haben.
$twofaChallengeToken = $_POST['challengeToken']
Führen Sie die Twofa-Optin-Überprüfung durch, indem Sie die Funktion „getChallenge“ auf der oben erzeugten Klasse ausführen. Übergeben Sie den challengeToken als Parameter:
$twofaChallenge = $twofaChallenge->getChallenge($twofaChallengeToken);
Werten Sie die Rückmeldung aus. Das zurückgegebene Objekt enthält in der Regel zwei Elemente:
- solved (boolean): Telefonnummer wurde verifiziert
- verifiedAddress (string): die bestätigte Telefonnummer
if ($twofaChallenge->solved) {
// twofa-optin-Überprüfung erfolgreich,
// "$twofaChallenge->verifiedAddress" enthält die überprüfte Telefonnummer
} else {
// twofa-optin-Überprüfung nicht erfolgreich
}
Serverseitig – per JS
Installieren Sie zuerst das Paket „@berlinsms/twofa-verify“:
npm install @berlinsms/twofa-verify
Importieren Sie das Paket in Ihr Projekt:
import { TwofaOptin } from '@berlinsms/twofa-verify';
Binden Sie anschließend den privaten Schlüssel (Secretkey) von BerlinSMS in Ihren Code ein:
Link: Wie erhalte ich einen Sitekey?
const twofaSecretkey= "<your_secret_key>";
Erzeugen Sie ein Objekt der importieren Klasse „TwofaOptin“. Übergeben Sie den Secretkey als Parameter:
const twofaOptin = new TwofaOptin(twofaSecretkey);
Lesen Sie die Postparameter aus, die Sie vom Formular erhalten haben:
const challengeToken = req.body.challengeToken;
Führen Sie die Twofa-Optin-Überprüfung durch, indem Sie die Funktion „getChallenge“ auf der oben erzeugten Klasse ausführen. Übergeben Sie den challengeToken als Parameter:
const twofaChallenge = await twofaOptin.getTwofaChallenge(challengeToken);
Werten Sie die Rückmeldung aus. Das zurückgegebene Objekt enthält in der Regel zwei Elemente:
- solved (boolean): Telefonnummer wurde verifiziert
- verifiedAddress (string): die bestätigte Telefonnummer
if (twofaChallenge.solved) {
// twofa-optin-Überprüfung erfolgreich,
// "twofaChallenge.verifiedAddress" enthält die überprüfte Telefonnummer
} else {
// twofa-optin-Überprüfung nicht erfolgreich
}