Node.js

Hinzufügen der Vonage Verify API

Vonage SDK importieren

An der Spitze Ihrer server.jsfügen Sie die Vonage-Konfiguration hinzu:

const { Auth } = require("@vonage/auth");
const { Verify2 } = require("@vonage/verify2");
require("dotenv").config();

// Configure Vonage credentials
const credentials = new Auth({
  applicationId: process.env.VONAGE_APP_ID,
  privateKey: process.env.VONAGE_PRIVATE_KEY,
});

const verifyClient = new Verify2(credentials);
  • Wir verwenden dotenv um Umgebungsvariablen zu laden.
  • Die Auth Klasse authentifiziert API-Anfragen anhand der Anwendungs-ID und des privaten Schlüssels.
  • Die Verify2 Client die Interaktionen mit der Verify-API.

Überprüfung starten

Arbeiten wir an der /verification Endpunkt. Dieser Endpunkt wird von der mobilen Anwendung aufgerufen und startet den Prozess zur Verifizierung des Benutzers.

app.post("/verification", async (req, res) => {
  const { phone } = req.body || null;

  if (!phone) {
    return res.status(400).json({ error: "Phone number is required." });
  }

  try {
    const result = await verifyClient.newRequest({
      brand: "DemoApp",
      workflow: [
        {
          channel: "silent_auth",
          to: phone,
        },
        {
          channel: "sms",
          to: phone,
        },
      ],
    });

    return res.json({
      request_id: result.requestId,
      check_url: result.checkUrl,
    });
  } catch (error) {
    console.error(error.response);
    return res.status(error.response.status).json({ error: error.message });
  }
});
  • Der Endpunkt verwendet eine
    POST
    -Methode und erwartet die Telefonnummer des Benutzers im Anfragetext.
  • Der Verifizierungsprozess verwendet den Arbeitsablauf der stillen Authentifizierung. Wenn Silent Auth fehlschlägt, wird auf SMS zurückgegriffen.
  • Wenn alles gut geht, gibt der Endpunkt eine Antwort an die mobile Anwendung zurück, die eine request_id und eine check_url. Die mobile App verwendet dann die check_url um eine Anfrage an den Mobilfunkbetreiber zu senden, der überprüft, ob der Datenverkehr von der angegebenen Telefonnummer stammt. Wir werden dies im Detail behandeln, wenn wir die Implementierung der mobilen App besprechen.

Verifizierungscode prüfen

Fügen Sie dann die /check-code Endpunkt:

app.post("/check-code", async (req, res) => {
  const { request_id, code } = req.body;

  if (!request_id || !code) {
    return res.status(400).json({ error: "Request ID and code are required." });
  }

  try {
    const result = await verifyClient.checkCode(request_id, code);

    return res.json({
      verified: result === "completed",
    });
  } catch (error) {
    return res.status(400).json({ error: error.message });
  }
});
  • Dieser Endpunkt verifiziert den vom Benutzer eingegebenen Code.
  • Wenn der Code übereinstimmt, gibt er verified: true für die mobile Anwendung.

Rückruf

Dieses Tutorial folgt dem asynchronen Ansatz zur Integration der Verify-API in das Backend. Gemäß der Dokumentation müssen wir einen Callback implementieren, der Ereignisaktualisierungen empfängt.

Navigieren Sie zunächst zur Seite Dashboardund öffnen Sie dann das Menü Applications auf der linken Seite. Klicken Sie auf die Anwendung, die Sie im vorherigen Schritt erstellt haben, und klicken Sie auf die Schaltfläche Bearbeiten.

Blättern Sie nach unten zur Netzwerkregistrierungsfunktion und aktivieren Sie die Funktion Verify (SA), indem Sie den Schalter einschalten. In diesem Abschnitt müssen Sie auch die Callback-URL angeben, unter der Ihr Server auf eingehende Ereignisse warten soll. Sie sollten etwas Ähnliches wie das Folgende hinzufügen:

http://your-server-ip:3000/callback

Fügen Sie den folgenden Code zu Ihrem server.js Datei:

app.post("/callback", (req, res) => {
  console.log("Callback received:", req.body);
  return res.status(200).json({ status: req.body.status });
});
  • Vonage ruft diesen Endpunkt auf, wenn es Ereignisse zu melden gibt, z. B. wenn Silent Auth abgeschlossen ist.
  • Wir protokollieren die empfangenen Daten und antworten mit einer Erfolgsmeldung.