Heim  >  Artikel  >  Web-Frontend  >  Nodejs implementiert die SMS-Verifizierung

Nodejs implementiert die SMS-Verifizierung

PHPz
PHPzOriginal
2023-05-23 16:24:081202Durchsuche

Mit der Popularität des mobilen Internets ist die SMS-Verifizierung zu einem wichtigen Bestandteil vieler Websites und mobiler Anwendungen geworden. Es kann die Authentizität der Mobiltelefonnummer des Benutzers überprüfen, die Sicherheit und das Vertrauen des Kontos erhöhen und außerdem böswillige Registrierungen und betrügerische Transaktionen verhindern. Basierend auf der Node.js-Technologie können wir die SMS-Verifizierungsfunktion problemlos implementieren.

Node.js ist eine JavaScript-Laufumgebung basierend auf der V8-Engine, die JavaScript zum Entwickeln von Back-End-Programmen verwenden kann. Der Vorteil von Node.js besteht darin, dass es eine schnelle Netzwerk- und Datenverarbeitung unterstützt und sein effizienter ereignisgesteuerter Mechanismus die asynchrone Programmierung vereinfachen kann. Daher eignet sich Node.js sehr gut für die Entwicklung von Back-End-Anwendungen mit hoher Parallelität und hoher Leistung. Im Folgenden zeigen wir, wie Sie Node.js zur Implementierung der SMS-Verifizierung verwenden.

Schritt 1: Beziehen Sie das SDK des SMS-API-Dienstanbieters

Um die SMS-Verifizierungsfunktion zu implementieren, müssen Sie zunächst über die von bereitgestellte Schnittstelle eine SMS-Verifizierung an den Benutzer senden der SMS-API-Dienstanbietercode eines Drittanbieters. Hier nehmen wir den Alibaba Cloud SMS API-Dienst als Beispiel. Die Alibaba Cloud SMS API bietet eine Fülle von Schnittstellen und SDKs, um SMS-Anforderungen in verschiedenen Szenarien zu erfüllen.

Hier müssen wir zur offiziellen Website von Alibaba Cloud gehen, um ein Konto zu registrieren und den SMS-API-Dienst zu erwerben. Nach erfolgreichem Kauf können wir das entsprechende SDK, den Schlüssel und andere Entwicklerinformationen erhalten.

Schritt 2: Node.js installieren und konfigurieren

Bevor Sie Node.js zur Implementierung der SMS-Verifizierungsfunktion verwenden, müssen Sie die Node.js-Umgebung installieren und konfigurieren .

Node.js kann das entsprechende Installationsprogramm von der offiziellen Website herunterladen. Nachdem die Installation abgeschlossen ist, müssen wir den Befehl npm in der Befehlszeile verwenden, um gängige Node.js-Module von Drittanbietern wie Express und Body-Parser zu installieren. Diese Module können uns allgemeine Funktionen wie HTTP-Server, Routing und Datenverarbeitung bereitstellen, sodass wir uns bequemer entwickeln können. Nach Abschluss der Installation müssen wir Node.js-Skriptcode schreiben, um die SMS-Verifizierungsfunktion zu implementieren.

Schritt 3: SMS-Verifizierungsfunktion implementieren

Als nächstes implementieren wir die SMS-Verifizierungsfunktion durch die folgenden Schritte.

1. Module und SDK von Drittanbietern importieren

Zuerst müssen wir das von Alibaba Cloud bereitgestellte Node.js-Drittanbietermodul importieren SMS-API-Dienst, wie folgt Beispiel:

const express = require('express');
const bodyParser = require('body-parser');
const SMSClient = require('@alicloud/sms-sdk');

2. Erstellen Sie eine Express-Serverinstanz

Als nächstes müssen wir das Express-Framework verwenden, um eine HTTP-Serverinstanz für die Verwaltung des Clients zu erstellen Anfragen und hören Sie zu, was wir Port angeben.

const app = express();
const port = 3000;

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

app.listen(port, () => console.log(`Listening on port ${port}`));

Dieser Code erstellt zunächst eine Express-Anwendungsinstanz und gibt den Port als 3000 an. Verwenden Sie dann das Body-Parser-Modul, um die JSON-formatierten Daten in der HTTP-Anfrage zu analysieren.

3. Definieren Sie die API-Schnittstelle zum Senden von SMS-Bestätigungscodes

Um SMS-Bestätigungscodes an Benutzer senden zu können, müssen wir eine API-Schnittstelle definieren, über die dies erfolgen kann Empfangen Sie Benutzeranfragen und geben Sie Informationen zum Bestätigungscode per SMS zurück. Die API-Schnittstelle ist wie folgt definiert:

app.post('/api/sendSMS', (req, res) => {
  // 获取电话号码和验证码
  const phoneNumber = req.body.phoneNumber;
  const verifyCode = generateVerifyCode();

  // 发送验证码短信
  const accessKeyId = 'your_accessKeyId';
  const secretAccessKey = 'your_secretAccessKey';
  const smsClient = new SMSClient({ accessKeyId, secretAccessKey }); 
  smsClient.sendSMS({
    PhoneNumbers: phoneNumber, // 电话号码
    SignName: 'your_sign_name', // 短信签名名称
    TemplateCode: 'your_template_code', // 短信模板CODE
    TemplateParam: JSON.stringify({ code: verifyCode }) // 验证码信息
  }).then(result => {
    console.log(result);
    res.send({
      code: 0,
      message: '发送成功'
    });
  }).catch(err => {
    console.error(err);
    res.send({
      code: -1,
      message: '发送失败'
    });
  });
});

Für den obigen Code lautet die Beschreibung wie folgt:

  • Erstens wird die Telefonnummer phoneNumber und random des Benutzers abgerufen Aus den HTTP-Anfrageparametern wird der Verifizierungscode „VerifyCode“ generiert.
  • Verwenden Sie dann das von Alibaba Cloud bereitgestellte SMS-API-Dienst-SDK, um einen SMS-Bestätigungscode an die Telefonnummer des Benutzers zu senden.

AccessKeyId und SecretAccessKey sind die Entwicklerinformationen, die wir in Alibaba Cloud beantragt haben, während TemplateCode und TemplateParam der Code und die entsprechenden Parameter der SMS-Vorlage sind, die wir jeweils in der Alibaba Cloud SMS-Konsole definiert haben . .

  • Wenn das Senden einer Textnachricht erfolgreich war oder fehlschlug, senden wir schließlich eine entsprechende Nachricht an den Kunden zurück. Hier wird der Promise-Rückrufmechanismus verwendet, um die entsprechenden Ergebnisse zurückzugeben, wenn die Verifizierungscode-SMS erfolgreich gesendet wurde oder fehlschlägt.

4. Überprüfen Sie den vom Benutzer eingegebenen Bestätigungscode.

Nachdem der Benutzer den SMS-Bestätigungscode erhalten hat, muss er den Bestätigungscode in unsere Anwendung eingeben Überprüfung. Daher müssen wir erneut eine API-Schnittstelle definieren, um die Verifizierungsanforderung vom Client zu empfangen und die Verifizierung des Verifizierungscodes auf der Serverseite durchzuführen.

app.post('/api/verifySMS', (req, res) => {
  const phoneNumber = req.body.phoneNumber; 
  const verifyCode = req.body.verifyCode; 

  // 验证码比对
  if (verifyCode === '1234') {
    res.send({
      code: 0,
      message: '验证成功'
    });
  } else {
    res.send({
      code: -1,
      message: '验证失败'
    });
  }
});

In dieser API-Schnittstelle erhalten wir zunächst die Telefonnummer des Benutzers (phoneNumber) und den vom Benutzer eingegebenen Verifizierungscode (verifyCode) aus den HTTP-Anforderungsparametern. Vergleichen Sie dann den vom Benutzer eingegebenen Bestätigungscode mit dem zuvor auf der Serverseite gespeicherten Bestätigungscode. Wenn sie konsistent sind, wird „Verifizierung erfolgreich“ zurückgegeben, andernfalls wird „Verifizierung fehlgeschlagen“ zurückgegeben.

Zusammenfassend lässt sich sagen, dass es nicht schwierig ist, die SMS-Verifizierungsfunktion von Node.js zu implementieren. Wir müssen lediglich den von Node.js bereitgestellten ereignisgesteuerten Mechanismus verwenden und die bereitgestellte API-Schnittstelle und das bereitgestellte SDK aufrufen Durch den SMS-API-Dienstanbieter können Sie die SMS-Verifizierungsfunktion schnell und einfach implementieren, um die Sicherheit und das Vertrauen Ihres Kontos zu verbessern.

Das obige ist der detaillierte Inhalt vonNodejs implementiert die SMS-Verifizierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn