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
dotenvum Umgebungsvariablen zu laden. - Die
AuthKlasse authentifiziert API-Anfragen anhand der Anwendungs-ID und des privaten Schlüssels. - Die
Verify2Client 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_idund einecheck_url. Die mobile App verwendet dann diecheck_urlum 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: truefü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.
Erste Schritte mit der stillen Authentifizierung
Silent Authentication ist nicht ganz einfach zu verstehen. Dieses Tutorial zeigt Ihnen, wie Sie eine Integration von Grund auf mit Nodejs und Kotlin erstellen können