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

Detaillierte Erklärung der Verwendung von publicPath in Webpack

Inhaltsverzeichnis Ausgabe Ausgabepfad Ausgabe.öf...

Vue implementiert zwei Methoden zur Steuerung der Routing-Berechtigung

Inhaltsverzeichnis Methode 1: Routing von Metainf...

So implementieren Sie eine geplante Sicherung der CentOS MySQL-Datenbank

Das folgende Skript wird für die geplante Sicheru...

Analyse des Docker-Compose-Image-Release-Prozesses des Springboot-Projekts

Einführung Das Docker-Compose-Projekt ist ein off...

Grafisches Tutorial zur Installation und Konfiguration von CentOS 7

In diesem Artikel wird das ausführliche Installat...

Analysieren von AB-Leistungstestergebnissen unter Apache

Ich habe immer Loadrunner für Leistungstests verw...

Zusammenfassung verschiedener Methoden für Vue zum Erreichen dynamischer Stile

Inhaltsverzeichnis 1. Ternäres Operatorurteil 2. ...

Grundlegende Verwendung der JS-Datumssteuerung My97DatePicker

My97DatePicker ist ein sehr flexibles und benutze...

So passen Sie geplante AT- und Cron-Aufgaben in Linux an

Es gibt zwei Arten von geplanten Tasks im Linux-S...

MySQL kann tatsächlich verteilte Sperren implementieren

Vorwort Im vorherigen Artikel habe ich Ihnen anha...

Native JS-Drag-and-Drop-Funktion zum Erstellen eines Slider-Beispielcodes

Drag & Drop ist eine gängige Funktion im Fron...

HTML+CSS zum Erstellen eines einfachen Fortschrittsbalkens

1. HTML-Code Code kopieren Der Code lautet wie fo...