Rumah > Artikel > hujung hadapan web > Nodejs melaksanakan pengesahan SMS
Dengan populariti Internet mudah alih, pengesahan SMS telah menjadi bahagian penting dalam banyak tapak web dan aplikasi mudah alih. Ia boleh mengesahkan ketulenan nombor telefon mudah alih pengguna, meningkatkan keselamatan dan kepercayaan akaun, dan menghalang pendaftaran berniat jahat dan transaksi penipuan. Berdasarkan teknologi Node.js, kami boleh melaksanakan fungsi pengesahan SMS dengan mudah.
Node.js ialah persekitaran berjalan JavaScript berdasarkan enjin V8, yang boleh menggunakan JavaScript untuk membangunkan atur cara belakang. Kelebihan Node.js ialah ia menyokong rangkaian pantas dan pemprosesan data, dan mekanisme dipacu peristiwa yang cekap boleh memudahkan pengaturcaraan tak segerak. Oleh itu, Node.js sangat sesuai untuk membangunkan aplikasi belakang berprestasi tinggi berkonkurensi tinggi. Di bawah, kami akan menunjukkan cara menggunakan Node.js untuk melaksanakan pengesahan SMS.
Langkah 1: Dapatkan SDK pembekal perkhidmatan API SMS
Untuk melaksanakan fungsi pengesahan SMS, anda perlu menghantar kod pengesahan SMS kepada pengguna terlebih dahulu melalui antara muka yang disediakan oleh pihak ketiga -pembekal perkhidmatan API SMS pihak. Di sini kami mengambil perkhidmatan API SMS Awan Alibaba sebagai contoh. API SMS Awan Alibaba menyediakan pelbagai antara muka dan SDK untuk memenuhi keperluan SMS dalam senario yang berbeza.
Di sini, kami perlu mendaftar akaun di tapak web rasmi Alibaba Cloud dan membeli perkhidmatan API SMS. Selepas pembelian berjaya, kami boleh mendapatkan SDK, Kunci dan maklumat pembangun lain yang sepadan.
Langkah 2: Pasang dan konfigurasikan Node.js
Sebelum anda mula menggunakan Node.js untuk melaksanakan fungsi pengesahan SMS, anda perlu memasang dan mengkonfigurasi persekitaran Node.js.
Node.js boleh memuat turun program pemasangan yang berkaitan dari tapak web rasmi. Selepas pemasangan selesai, kita perlu menggunakan arahan npm dalam baris arahan untuk memasang modul pihak ketiga Node.js biasa seperti express dan body-parser. Modul ini boleh memberikan kami fungsi biasa seperti pelayan HTTP, penghalaan dan pemprosesan data, supaya kami boleh membangunkan dengan lebih mudah. Selepas pemasangan selesai, kita perlu menulis kod skrip Node.js untuk melaksanakan fungsi pengesahan SMS.
Langkah 3: Laksanakan fungsi pengesahan SMS
Seterusnya, kami akan melaksanakan fungsi pengesahan SMS melalui langkah berikut.
1. Import modul pihak ketiga dan SDK
Pertama, kami perlu mengimport modul pihak ketiga Node.js yang perlu kami gunakan dan SDK yang disediakan oleh perkhidmatan API SMS Cloud Alibaba, seperti yang ditunjukkan di bawah:
const express = require('express'); const bodyParser = require('body-parser'); const SMSClient = require('@alicloud/sms-sdk');
2 Cipta contoh pelayan Ekspres
Seterusnya, kita perlu menggunakan rangka kerja ekspres untuk mencipta contoh pelayan HTTP untuk mengendalikan permintaan pelanggan dan mendengar port yang kami tentukan. .
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}`));
Kod ini mula-mula mencipta contoh aplikasi ekspres dan menentukan port sebagai 3000. Kemudian, gunakan modul body-parser untuk menghuraikan data berformat JSON dalam permintaan HTTP.
3. Tentukan antara muka API untuk menghantar kod pengesahan SMS
Untuk dapat menghantar kod pengesahan SMS kepada pengguna, kami perlu menentukan antara muka API untuk menerima permintaan pengguna dan kembalikan maklumat kod pengesahan SMS. Antara muka API ditakrifkan seperti berikut:
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: '发送失败' }); }); });
Untuk kod di atas, penerangan adalah seperti berikut:
AccessKeyId dan secretAccessKey ialah maklumat pembangun yang kami mohon dalam Alibaba Cloud, manakala TemplateCode dan TemplateParam ialah kod dan parameter sepadan templat SMS yang kami takrifkan dalam konsol SMS Alibaba Cloud.
4. Sahkan kod pengesahan yang dimasukkan oleh pengguna
Selepas pengguna menerima kod pengesahan SMS, dia perlu memasukkan kod pengesahan ke dalam aplikasi kami untuk pengesahan. Oleh itu, kami perlu mentakrifkan antara muka API sekali lagi untuk menerima permintaan pengesahan daripada klien dan melaksanakan pengesahan kod pengesahan di bahagian pelayan.
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: '验证失败' }); } });
Dalam antara muka API ini, kami mula-mula mendapatkan nombor telefon nombor telefon pengguna dan input kod pengesahan oleh Kod pengesahan pengguna daripada parameter permintaan HTTP. Kemudian, bandingkan kod pengesahan yang dimasukkan oleh pengguna dengan kod pengesahan yang disimpan sebelum ini di bahagian pelayan Jika ia konsisten, "pengesahan berjaya" akan dikembalikan, jika tidak "pengesahan gagal" akan dikembalikan.
Ringkasnya, tidak sukar untuk melaksanakan fungsi pengesahan SMS Node.js Kami hanya perlu menggunakan mekanisme dipacu peristiwa yang disediakan oleh Node.js dan memanggil antara muka API dan SDK yang disediakan oleh SMS. Pembekal perkhidmatan API. Laksanakan fungsi pengesahan SMS dengan mudah dan cepat untuk meningkatkan keselamatan dan kepercayaan akaun.
Atas ialah kandungan terperinci Nodejs melaksanakan pengesahan SMS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!