Beispielcode zur Implementierung der Anmeldung mit Bestätigungscode in der SMS-API in Node

Beispielcode zur Implementierung der Anmeldung mit Bestätigungscode in der SMS-API in Node

1. Node-Server einrichten + Datenbankverbindung

Die Bedienung ist hier relativ einfach und leicht verständlich. Siehe: Schnelle Einrichtung des Node-Servers

2. Nutzung der SMS-API

Für die SMS-API verwenden wir hier den SMS-Dienst von Alibaba Cloud als Beispiel (jede Plattform mit SMS-Dienst kann ihn verwenden).

2.1 Melden Sie sich bei der Plattform an, um Parameter zu konfigurieren

1. Rufen Sie die SMS-Konsole auf und konfigurieren Sie das zu sendende SMS-Format. Wenn keine Signatur vorhanden ist, müssen Sie vor dem Vorgang eine Signatur anfordern.

Bildbeschreibung hier einfügen

2. Klicken Sie auf API-Demo anzeigen, um die konfigurierte API aufzurufen; wählen Sie Node.js

Bildbeschreibung hier einfügen

2.2 Verwenden Sie die generierte API im Projekt

Codekommentare sind detailliert

const Core = require('@alicloud/pop-core'); //cwen ruft das Ali-SMS-Modul auf (muss zuerst installiert werden)
//cwen konfiguriert die Alibaba SMS-Service-API let client = new Core({
 accessKeyId: '<accessKeyId>', // Muss zuerst angewendet werden (Schritte unten)
 accessKeySecret: '<accessSecret>', // Muss zuerst angewendet werden (Schritte unten)
 Endpunkt: „https://dysmsapi.aliyuncs.com“, //Keine Änderung nötig. API-Version: „2017-05-25“ //Keine Änderung nötig. });
//cwen-Anforderungsmethode let requestOption = {
  Methode: 'POST'
};

//# Erzeuge eine zufällige vierstellige Zahl, um den Verifizierungscode zu simulieren function rander(max, min) {
  gibt Math.floor(Math.random() * (max - min)) + min zurück
}
//# Handynummer + Bestätigungscode speichern (zur einfachen Überprüfung)
var loginInfo = [];
//# Überprüfen Sie, ob die Telefonnummer einen Bestätigungscode gesendet hat let validate = (phone) => {
  returniere loginInfo.some(item => item.phone === phone)
}
//# Überprüfen Sie, ob der Bestätigungscode konsistent ist let validateCode = (phone, code) => {
  returniere loginInfo.some(item => (item.phone === Telefon && item.code == Code))
}

//cwen verwendet die Alibaba Cloud API, um eine SMS-Bestätigung zu senden (Bestätigungscode-Anmeldung)
sendLoginCroeCode = async(req, res) => {
  lass { Telefon } = req.body;
  let randCode = rander(1000, 9999);
  var Parameter = {
      "RegionId": "cn-hangzhou",
      "PhoneNumbers": Telefon, // Telefonnummer des Kunden "SignName": "小陈应用ya", // Signatur "TemplateCode": "SMS_197625305", // Vorlage, die zum Senden von Textnachrichten verwendet wird "TemplateParam": JSON.stringify({ 'code': randCode }) // den zu sendenden Bestätigungscode angeben (hier wird die Rander-Funktion als Beispiel verwendet)
    }
     //# Vor dem Senden des Bestätigungscodes feststellen, ob die Mobiltelefonnummer registriert wurde if (await isRegister(phone)) { // Dies ist eine Datenbankoperation (kann ignoriert werden)
    client.request('SendSms', params, requestOption).then((Ergebnis) => {
      wenn (Ergebnis.Code == 'OK') {
        res.send({
          Status: 200,
          Nachricht: „Erfolgreich gesendet“
        });
        loginInfo.push({
          Telefon: Telefon,
          Code: Zufallscode
        });
        console.log(Zufallscode)
      } anders {
        res.send({
          Status: 400,
          Nachricht: „Senden fehlgeschlagen“
        })
      }
    })
  } anders {
    res.send({
      Status: 400,
      msg: „Diese Telefonnummer ist nicht registriert“
    })
  }
}

//# Anmeldeschnittstelle für Bestätigungscode let phoneCodeLogin = async(req, res) => {
  let { Telefon, Code } = req.body;
  if (validate(phone)) { //Beurteilen, ob die Mobiltelefonnummer einen Bestätigungscode gesendet hatif (validateCode(phone, code)) { //Beurteilen, ob der Bestätigungscode mit der Mobiltelefonnummer übereinstimmtlet user = await isFirstLogin(phone); //Dies ist eine Datenbankoperation zum Abrufen von Benutzerinformationen (kann ignoriert werden)
      res.send({
        Status: 200,
        msg: 'Anmeldung erfolgreich',
        Daten: Benutzer[0]
      })
      loginInfo = []; // Die Anmeldung war erfolgreich. Löschen Sie das Array sofort, um einen erneuten Fehler beim Senden des Bestätigungscodes zu vermeiden.} else {
      res.send({
        Status: 400,
        msg: ‚Fehler beim Bestätigungscode‘
      })
    }
  } anders {
    res.send({
      Status: 400,
      Nachricht: „Verifizierungscode nicht erhalten“
    })
  }
}

// Hinweis: Denken Sie daran, die Schnittstelle am Ende verfügbar zu machen

Hinweis : accessKeyId、accessKeySecret müssen vor der Verwendung beantragt werden

Bildbeschreibung hier einfügen

3. Melden Sie sich über die Schnittstelle an

Hier nehmen wir als Beispiel das Postman-Schnittstellen-Debugging-Tool und die Mobiltelefonnummer ist die in der Datenbank registrierte Mobiltelefonnummer

Prüfcode anfordern

Bildbeschreibung hier einfügen

Bestätigungscode auf Mobiltelefon erhalten

Bildbeschreibung hier einfügen

Bestätigungscode-Anmeldung

Bildbeschreibung hier einfügen

Dies ist das Ende dieses Artikels über den Beispielcode zur Implementierung der Anmeldung mit Bestätigungscode mit SMS-API in Node. Weitere relevante Inhalte zur Anmeldung mit SMS-Bestätigungscode von Node finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Ali größer als SMS-Bestätigungscode-Knoten koa2-Implementierungscode (neueste)
  • So greifen Sie mit nodejs auf den SMS-Bestätigungscode von Ali Dayu zu
  • Nodejs sendet Post-Request-Funktion (Beispiel für SMS-Verifizierungscode)
  • Nodejs implementiert SMS-Bestätigungscode-Funktion

<<:  Lösung für den MySQL-Fehler „Tabelle kann nicht gelesen werden“ (MySQL-Fehler 1018)

>>:  Eine detaillierte Einführung in Linux-Dateiberechtigungen

Artikel empfehlen

Implementierung der Docker-Bereitstellung eines MySQL-Clusters

Nachteile einer Single-Node-Datenbank Große Inter...

Detailliertes Tutorial zum Herunterladen und Installieren von VMware Workstation

Virtuelle Maschinen sind eine sehr praktische Tes...

So realisieren Sie die vertikale Anordnung von Text mit CSS3

In einem aktuellen Projekt wollte ich Text vertik...

Gängige Methoden zur Optimierung der Docker-Imagegröße

Die Docker-Images, die wir normalerweise erstelle...

js implementiert eine auf Canvas basierende Uhrkomponente

Canvas war schon immer ein unverzichtbares Tag-El...

So verarbeiten Sie Blob-Daten in MySQL

Der spezifische Code lautet wie folgt: Paket epoi...

Gestaltung der Bildvorschau auf der Inhaltswebseite

<br />Ich habe bereits zwei Artikel geschrie...

...

Allgemeine Funktionen der MySQL-Grundlagen

Inhaltsverzeichnis 1. Allgemeine Funktionsklassif...

Detaillierte Diskussion der Unterschiede zwischen Schleifen in JavaScript

Inhaltsverzeichnis Vorwort Aufzählbare Eigenschaf...

Detaillierte JavaScript-Rekursion

Inhaltsverzeichnis 1. Was ist Rekursion? 2. Mathe...

CSS3 verwendet scale() und rotate() zum Zoomen und Drehen

1. scale()-Methode Zoom steht für „Verkleinern“ u...

CSS- und HTML- und Front-End-Technologie-Schichtendiagramm

Die Beziehung zwischen Javascript und DOM ist seh...