node.js+uniapp(vue),阿里云短信驗證碼

reg.vue:

思路是:前端調用獲取驗證碼的接口 ==> 后端生成驗證碼返回給前端 ==> 前端渲染驗證碼

<template>  <div>  <input class="sl-input" v-model="phone" type="tel" maxlength="11" placeholder="手機號" />  <button @click="sendSms">短信注冊</button>  </div>  
</template>  <script>  
export default {  data() {  return {  phone: ''  };  },  methods: {  sendSms() {  console.log('電話號:', this.phone);  uni.request({  url: 'http://localhost:3000/valisms', // 你的后端服務地址  method: 'POST',  data: {  phoneNumbers: this.phone  },  success: (res) => {  if (res.data.success) {  console.log('短信發送成功:', res.data.response);  uni.showToast({  title: '短信發送成功',  icon: 'success'  });  } else {  console.log('短信發送失敗:', res.data.message);  uni.showToast({  title: '短信發送失敗',  icon: 'none'  });  }  },  fail: (err) => {  console.error('發送請求失敗:', err);  uni.showToast({  title: '請求失敗',  icon: 'none'  });  }  });  },  }  
};  
</script>  <style>  </style>

client.js:

地址:短信服務_云產品主頁-阿里云OpenAPI開發者門戶 (aliyun.com)

'use strict';
// This file is auto-generated, don't edit it
// 依賴的模塊可通過下載工程中的模塊依賴文件或右上角的獲取 SDK 依賴信息查看
const Dysmsapi20170525 = require('@alicloud/dysmsapi20170525');
const OpenApi = require('@alicloud/openapi-client');
const Console = require('@alicloud/tea-console');
const Util = require('@alicloud/tea-util');
const Tea = require('@alicloud/tea-typescript');

class Client {
?? ??? ?? static createClient() {
?? ??? ??? ?// 工程代碼泄露可能會導致 AccessKey 泄露,并威脅賬號下所有資源的安全性。以下代碼示例僅供參考。
?? ??? ??? ?// 建議使用更安全的 STS 方式,更多鑒權訪問方式請參見:https://help.aliyun.com/document_detail/378664.html。
?? ??? ??? ?let config = new OpenApi.Config({
?? ??? ??? ?? // 必填,請確保代碼運行環境設置了環境變量 ALIBABA_CLOUD_ACCESS_KEY_ID。
?? ??? ??? ?? accessKeyId: 'xxxx',
?? ??? ??? ?? // 必填,請確保代碼運行環境設置了環境變量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
?? ??? ??? ?? accessKeySecret: 'xxxxxx',
?? ??? ??? ?});
?? ??? ??? ?// Endpoint 請參考 https://api.aliyun.com/product/Dysmsapi
?? ??? ??? ?config.endpoint = `dysmsapi.aliyuncs.com`;
?? ??? ??? ?return new Dysmsapi20170525.default(config);
?? ??? ?? }

?? ? static async sendSms(phoneNumbers, code) {
?? ???? let client = Client.createClient();
?? ??? ?console.log('驗證碼是:',code);
?? ???? let sendSmsRequest = new Dysmsapi20170525.SendSmsRequest({
?? ?????? signName: 'xxx', // 替換為你的短信簽名名稱
?? ?????? templateCode: 'xxxx', // 替換為你的短信模板 CODE
?? ?????? phoneNumbers: phoneNumbers,
?? ?????? templateParam: JSON.stringify({ code:code }),
?? ???? });
?? ???? let runtime = new Util.RuntimeOptions({});
?? ??? ??? ?try {
?? ??? ??? ?? let response = await client.sendSmsWithOptions(sendSmsRequest, runtime);
?? ??? ??? ?? return response;
?? ??? ??? ?} catch (error) {
?? ??? ??? ? console.error('錯誤的原因是:',error);
?? ??? ??? ?}
?? ??? ?}
?

}


module.exports = Client;
Client.sendSms(process.argv.slice(2));

server.js :

// server.js
const express = require('express');
const bodyParser = require('body-parser');
const Client? = require('./client');

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

app.use(bodyParser.json());

app.post('/valisms', async (req, res) => {
? const { phoneNumbers} = req.body;
? console.log('電話號:',phoneNumbers);
? const code = Math.floor(100000 + Math.random() * 900000).toString(); ?
? console.log('驗證碼是:',code);
? try {
??? const response = await Client.sendSms(phoneNumbers, code);
??? res.json({ success: true, message: '短信發送成功', response });
? } catch (error) {
?? ?console.error('短信發送失敗的具體原因:', error);
??? res.status(500).json({ success: false, message: '短信發送失敗' });
? }
});

app.listen(port, () => {
? console.log(`Server running on http://localhost:${port}`);
});

?三個文件搞定,要使用nod命令啟動server,如進入相對應的路徑執行:node server.js

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/38558.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/38558.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/38558.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

微信小程序畢業設計-微信食堂線上訂餐系統項目開發實戰(附源碼+論文)

大家好&#xff01;我是程序猿老A&#xff0c;感謝您閱讀本文&#xff0c;歡迎一鍵三連哦。 &#x1f49e;當前專欄&#xff1a;微信小程序畢業設計 精彩專欄推薦&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python畢業設計…

【在線評論】不同視角下在線評論對客戶滿意度和推薦度的影響—推文分析—2024-07-01

今天的推文主題是【在線評論】&#xff0c;重點關注可以關注第四篇&#xff0c;很全面地分析了在線評論的信息多維性。 第一篇從客戶的在線評論入手&#xff0c;將客戶消費的動機為功利、享受、社會滿足&#xff1b;第二篇是關于在線評論對消費者再次選擇同一家酒店的機制探索…

MySQL之主從同步、分庫分表

1、主從同步的原理 MySQL主從復制的核心是二進制日志 二進制日志&#xff08;binlog&#xff09;記錄了所有DDL語句和DML語句&#xff0c;但不包括數據查詢&#xff08;select、show&#xff09;語句。 1.1、復制分三步 master主庫在事務提交時&#xff0c;會把數據變更記錄…

電子戰學習筆記01:電子戰概論

0、寫在文前 本人在學習電子戰相關理論知識時&#xff0c;一直感覺無從下手&#xff0c;之后在老師的推薦下購買了《EW101&#xff1a;電子戰基礎》紙質書籍學習&#xff0c;所以將自己的學習筆記在CSDN上記錄一下&#xff0c;也供有需要的同學參考。 1、電子戰定義 電子戰&…

Spring Boot與Apache Kafka集成的深度指南

Spring Boot與Apache Kafka集成的深度指南 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; 在現代分布式系統中&#xff0c;消息隊列的作用愈發重要&#xff0…

【鴻蒙學習筆記】鴻蒙ArkTS學習筆記

應用開發導讀&#xff1a;https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/application-dev-guide-V5 【鴻蒙培訓】第&#xff11;天?環境安裝 【鴻蒙培訓】第&#xff12;天?裝飾器?組件和頁面生命周期 【鴻蒙學習筆記】數據類型 【鴻蒙學習筆記】運算…

Spring Cloud中的服務發現與注冊

Spring Cloud中的服務發現與注冊 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01;今天我們將探討Spring Cloud中的服務發現與注冊&#xff0c;這是微服務架構中至…

全網最詳細的 gin框架請求數據綁定Bind 源碼解析 -- 幫助你全面了解gin框架的請求數據綁定原理和方法

在gin框架中&#xff0c;我們可以將多種請求數據&#xff08;json, form,uri&#xff0c;header等&#xff09;直接綁定到我們定義的結構體&#xff0c;底層是通過反射方式獲取我們定義在結構體上面的tag來實現請求數據到我們的結構體數據的綁定的。 在gin的底層有2大體系的數據…

Python pip install模塊時C++編譯環境問題

pip install模塊時C編譯環境問題 在接觸和使用python后&#xff0c;常常會通過pip install命令安裝第三方模塊&#xff0c;大多數模塊可以直接安裝&#xff0c;但許多新同學仍會遇見某些模塊需要實時編譯后才能安裝&#xff0c;如報錯信息大概是缺乏C編譯環境&#xff0c;本文則…

【Elasticsearch】Elasticsearch索引創建與管理詳解

文章目錄 &#x1f4d1;引言一、Elasticsearch 索引的基礎概念二、創建索引2.1 使用默認設置創建索引2.2 自定義設置創建索引2.3 創建索引并設置映射 三、索引模板3.1 創建索引模板3.2 使用索引模板創建索引 四、管理索引4.1 查看索引4.2 更新索引設置4.3 刪除索引 五、索引別名…

Go-知識測試-性能測試

Go-知識測試-性能測試 1. 定義2. 例子3. testing.common 測試基礎數據4. testing.TB 接口5. 關鍵函數5.1 testing.runBenchmarks5.2 testing.B.runN5.3 testing.B.StartTimer5.4 testing.B.StopTimer5.5 testing.B.ResetTimer5.6 testing.B.Run5.7 testing.B.run15.8 testing.B…

監聽藍牙對話的BlueSpy技術復現

本文是之前文章的BlueSpy技術的復現過程&#xff1a;https://mp.weixin.qq.com/s/iCeImLLPAwwKH1avLmqEpA 2個月前&#xff0c;網絡安全和情報公司Tarlogic在西班牙安全大會RootedCon 2024上提出了一項利用藍牙漏洞的BlueSpy技術&#xff0c;并在之后發布了一個名為BlueSpy的概…

深度學習之生成對抗網絡StyleGAN3

StyleGAN3 是由 NVIDIA 團隊提出的第三代生成對抗網絡(GAN),在前代 StyleGAN 和 StyleGAN2 的基礎上進行了改進,以實現更高質量的圖像生成。StyleGAN3 的主要改進在于解決了 StyleGAN2 中存在的偽影(artifacts)問題,并且提升了生成圖像的一致性和穩定性。 StyleGAN3 的…

git 提交代碼忽略eslint代碼檢測

在暫存代碼的時候會出現以上情況因為在提交代碼的時候會默認運行代碼進行檢測&#xff0c;如果不符合代碼規范就會進行報錯 解決&#xff1a; 使用 git commit --no-verify -m xxx 忽略eslint的檢測

Laravel 謹慎使用Storage::append()

在 driver 為 local 時&#xff0c;Storage::append()在高并發下&#xff0c;會存在丟失數據問題&#xff0c;文件被覆寫&#xff0c;而非尾部添加&#xff0c;如果明確是本地文件操作&#xff0c;像日志寫入&#xff0c;建議使用 Illuminate\Filesystem\Filesystem或者php原生…

技術成神之路:設計模式(一)單例模式

在軟件設計中&#xff0c;有時我們希望某個類的實例始終是唯一的&#xff0c;即無論在何處訪問這個類&#xff0c;都能夠得到同一個實例。單例模式&#xff08;Singleton Pattern&#xff09;就是為了解決這個問題而產生的。單例模式確保一個類只有一個實例&#xff0c;并提供一…

整合web-socket的常見bug

整合文章連接 此文是記錄我上網查找整合方案時候踩的坑,特別是注冊失敗的問題,比如還有什么去掉Compoent就可以,但是這樣這個端點就失效了 特別是報錯: at org.springframework.web.socket.server.standard.ServerEndpointExporter.registerEndpoint(ServerEndpointExporter.…

大模型日報 2024-06-30

大模型日報 2024-06-30 大模型產品 Briefy: AI知識助手 摘要: Briefy是一款AI知識助手&#xff0c;為專業用戶簡化每日信息消費&#xff0c;將復雜信息提煉成結構化摘要&#xff0c;組織成知識庫&#xff0c;并以自然語言按需檢索。 Claude Projects&#xff1a;組織聊天與共享…

邀請函 | 極限科技全新搜索引擎 INFINI Pizza 亮相 2024 可信數據庫發展大會!

過去一年&#xff0c;在全球 AI 浪潮和國家數據局成立的推動下&#xff0c;數據庫產業變革不斷、熱鬧非凡。2024 年&#xff0c;站在中國數字經濟產業升級和數據要素市場化建設的時代交匯點上&#xff0c;“2024 可信數據庫發展大會” 將于 2024 年 7 月 16-17 日在北京悠唐皇冠…

肆拾玖坊的商業模式,49坊新零售獎金制度體系,眾籌眾創+會員制

肆拾玖坊之所以能夠在短時間內成為白酒行業的“現象級”企業,,不僅是依靠獨特商業模式,同時也依靠的是堅持用戶為核心,圍繞用戶需求,讓用戶與產品直接產生連接理念。 坐標&#xff1a;廈門&#xff0c;我是易創客肖琳 深耕社交新零售行業10年&#xff0c;主要提供新零售系統工…