Maison  >  Article  >  interface Web  >  Nodejs implémente la vérification par SMS

Nodejs implémente la vérification par SMS

PHPz
PHPzoriginal
2023-05-23 16:24:081131parcourir

Avec la popularité de l'Internet mobile, la vérification par SMS est devenue un élément important de nombreux sites Web et applications mobiles. Il peut vérifier l'authenticité du numéro de téléphone mobile de l'utilisateur, augmenter la sécurité et la confiance du compte et empêcher les enregistrements malveillants et les transactions frauduleuses. Basé sur la technologie Node.js, nous pouvons facilement implémenter la fonction de vérification SMS.

Node.js est un environnement d'exécution JavaScript basé sur le moteur V8, qui peut utiliser JavaScript pour développer des programmes back-end. L'avantage de Node.js est qu'il prend en charge un traitement rapide du réseau et des données, et son mécanisme efficace basé sur les événements peut simplifier la programmation asynchrone. Par conséquent, Node.js est très approprié pour développer des applications back-end à haute concurrence et hautes performances. Ci-dessous, nous montrerons comment utiliser Node.js pour implémenter la vérification par SMS.

Étape 1 : Obtenez le SDK du fournisseur de services API SMS

Pour mettre en œuvre la fonction de vérification par SMS, vous devez d'abord envoyer une vérification par SMS à l'utilisateur via l'interface fournie par le code du fournisseur de services API SMS tiers. Ici, nous prenons comme exemple le service API SMS Alibaba Cloud. L'API SMS d'Alibaba Cloud fournit une multitude d'interfaces et de SDK pour répondre aux besoins SMS dans différents scénarios.

Ici, nous devons nous rendre sur le site officiel d'Alibaba Cloud pour créer un compte et acheter le service API SMS. Une fois l'achat réussi, nous pouvons obtenir le SDK, la clé et d'autres informations sur le développeur correspondants.

Étape 2 : Installer et configurer Node.js

Avant de commencer à utiliser Node.js pour implémenter la fonction de vérification SMS, vous devez installer et configurer l'environnement Node.js .

Node.js peut télécharger le programme d'installation correspondant depuis le site officiel. Une fois l'installation terminée, nous devons utiliser la commande npm dans la ligne de commande pour installer les modules tiers Node.js courants tels que express et body-parser. Ces modules peuvent nous fournir des fonctions communes telles que le serveur HTTP, le routage et le traitement des données, afin que nous puissions développer plus facilement. Une fois l'installation terminée, nous devons écrire le code du script Node.js pour implémenter la fonction de vérification SMS.

Étape 3 : Implémenter la fonction de vérification par SMS

Ensuite, nous mettrons en œuvre la fonction de vérification par SMS à travers les étapes suivantes.

1. Importer des modules tiers et un SDK

Tout d'abord, nous devons importer le module tiers Node.js que nous devons utiliser et le SDK fourni par Alibaba Cloud Service API SMS, comme suit Exemple :

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

2. Créez une instance de serveur Express

Ensuite, nous devons utiliser le framework express pour créer une instance de serveur HTTP pour gérer le client. demandes et écouter ce que nous spécifions le port.

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}`));

Ce code crée d'abord une instance d'application express et spécifie le port comme 3000. Ensuite, utilisez le module body-parser pour analyser les données au format JSON dans la requête HTTP.

3. Définir l'interface API pour l'envoi des codes de vérification SMS

Afin de pouvoir envoyer des codes de vérification SMS aux utilisateurs, nous devons définir une interface API via laquelle recevoir les demandes des utilisateurs. Et renvoyer les informations du code de vérification par SMS. L'interface API est définie comme suit :

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: '发送失败'
    });
  });
});

Pour le code ci-dessus, la description est la suivante :

  • Tout d'abord, obtenez le numéro de téléphone de l'utilisateur phoneNumber et aléatoire à partir des paramètres de la requête HTTP Code de vérification généré verifyCode.
  • Ensuite, utilisez le SDK du service API SMS fourni par Alibaba Cloud pour envoyer un code de vérification SMS au numéro de téléphone de l'utilisateur.

AccessKeyId et secretAccessKey sont les informations de développeur que nous avons demandées dans Alibaba Cloud, tandis que TemplateCode et TemplateParam sont le code et les paramètres correspondants du modèle SMS que nous avons défini respectivement dans la console SMS d'Alibaba Cloud. .

  • Enfin, en cas d'envoi réussi ou d'échec d'un message texte, nous renverrons un message correspondant au client. Le mécanisme de rappel Promise est utilisé ici pour renvoyer les résultats correspondants lorsque le SMS du code de vérification est envoyé avec succès ou échoue.

4. Vérifiez le code de vérification saisi par l'utilisateur

Une fois que l'utilisateur a reçu le code de vérification par SMS, il doit saisir le code de vérification dans notre application pour vérification. Par conséquent, nous devons redéfinir une interface API pour recevoir la demande de vérification du client et effectuer la vérification du code de vérification côté serveur.

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: '验证失败'
    });
  }
});

Dans cette interface API, nous obtenons d'abord le numéro de téléphone de l'utilisateur phoneNumber et le code de vérification saisi par l'utilisateur à partir des paramètres de la requête HTTP. Ensuite, comparez le code de vérification saisi par l'utilisateur avec le code de vérification précédemment enregistré côté serveur. S'ils sont cohérents, « vérification réussie » sera renvoyé, sinon « échec de vérification » sera renvoyé.

Pour résumer, il n'est pas difficile d'implémenter la fonction de vérification SMS de Node.js. Il suffit d'utiliser le mécanisme événementiel fourni par Node.js et d'appeler l'interface API et le SDK fournis. par le fournisseur de services SMS API Vous pouvez mettre en œuvre rapidement et facilement la fonction de vérification SMS pour améliorer la sécurité et la confiance de votre compte.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn