通过验证邮箱进行注册信息确认

应用在进行注册时,避免恶意攻击和垃圾注册,可以通过验证注册者身份后才能够提交。一般可以使用验证手机短信或者验证邮箱,验证短信会有专门的第三方服务,可以进行付费购买。验证邮箱的正确与否,可以通过以下2种方式进行验证:

  • 使用nodemailer给提交注册的邮箱发送一个随机验证码,然后和后端程序进行比对
  • 使用resend工具让管理员进行二次确认。用在用户量不大,且场景固定下。

nodemailer进行发送验证码

使用nodemailer发送验证码给指定的邮箱。

获取发送邮箱的配置

nodemailer 需要指定一个发送邮箱,用该邮箱给其他邮箱发送短信。那么就需要对发送邮箱进行一些配置处理,主要就是设置SMTP协议。
首先,要开启 smtp 服务,这里以 qq 邮箱举例(其他邮箱也类似)
在邮箱帮助中心 service.mail.qq.com/ 可以搜到如何开启 smtp、imap 等服务:
image.png
开启后可以在邮箱设置>账号中看到
image.png
然后在qq邮箱的右上角,找到账号与安全
image.png
然后进入到安全设置;
image.png
在这里点击生成授权码,这个是 qq 邮箱特有的一个第三方登录密码;生成后要独立保存好,以后就不能再次查看,只能过期或者删除。
申请的qq邮箱第三方登录密码

email_user=0------9@qq.com
email_password=fbrvqsfcllkqbeai

安装nodemailer并使用

npm install -D nodemailer

接下来进行代码开发

const nodemailer = require("nodemailer");const transporter = nodemailer.createTransport({host: "smtp.qq.com",port: 587,secure: false,auth: {user: '0------9@qq.com',pass: '你的授权码'},
});async function main() {const info = await transporter.sendMail({from: '0------9@qq.com',to: "接收信息的邮箱",subject: "用于注册xx网站验证", // 生成一个随机6位数字,在服务端也要有备份保留,一般放到redis中,设置5分钟过期text: "生成一个随机6位数字"});console.log("邮件发送成功:", info.messageId);
}main().catch(console.error);

设置好,就可以看到要注册账户的邮箱能够收到一个随机的6位验证码,用户将该验证码提交给注册的服务器。在服务器中进行比对,验证成功则可以注册用户。

resend进行二次确认

除了上面使用获取邮箱验证码,还可以使用resend服务,给管理员邮箱发送一个验证的链接,链接中包含注册者的注册信息,等待管理员进行确认是否可以注册。这一般可以使用在企业内部管理系统中。

首先申请resend账户

申请resend账户,并设置APIkey
进入到API_keys菜单
image.png
设置一个API keys。将key进行保存。

RESEND_API_KEY=re_TyyiSy6F_B8qLDfX27iq6bfDmFsFZ87LP
RESEND_ACCOUNT_EMAIL=申请账号的邮箱@qq.com

安装resend插件

npm install -S resend

image.png

const {Resend} = require('resend');const resend = new Resend(`re_2JWFv1QH_PFKjQmEaxzTGKv7ZyLgpe3rM`);(async function() {const { data, error } = await resend.emails.send({from: 'My Test <onboarding@resend.dev>',to: '申请账号的邮箱@qq.com',subject: 'Hello World',html: '<strong>来自xxx@dev.com 用户的申请,请点击确认或者拒绝</strong>'});if (error) {return console.log(error);}console.log(data);
})();

执行node resend.js文件,可以看到邮箱中收到确认链接。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/861779.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

牛掰!这小哥用显微镜摄取芯片ROM,还原了芯片的二进制固件。

最近在github上看到了一个很让人叹为观止的项目。 作者通过显微镜摄取芯片ROM,将里面的二进制固件给还原了。搞芯片和BSP的朋友都知道这意味着什么。 于是翻译这篇文章,感兴趣的朋友也可阅读原文欣赏一下,受限于英语水平,如有不当之处,还请海涵。 原文:GameBoy ROM Tut…

Linux 安装 MySQL 8.0.26

1、MySQL 8.0.26 下载 官方网站下载 MySQL 8.0.26 安装包&#xff0c;下载地址&#xff1a;mysql8.0.26 本案例采用Linux 64位操作系统进行讲解&#xff0c;通过wget命令下载安装包。 使用df -lh命令查看&#xff0c;磁盘大小&#xff0c;尽量安装在比较大的磁盘下&#xff0c…

三态缓冲器的三种状态分别是什么

在电子设计的广阔领域中&#xff0c;三态缓冲器以其独特的三态输出特性&#xff0c;成为了不可或缺的关键组件。今天我们就来一起揭秘三态缓冲器的神秘面纱&#xff0c;探讨它在电子设计中的重要作用和独特优势。 一、三态缓冲器的三态奥秘 三态缓冲器之所以得名&#xff0c;…

vue3+ts <script setup lang=“ts“> element-plus的el-date-picker设置默认日期

效果图&#xff08;单个日期&#xff09;&#xff1a; utils.ts&#xff1a; /*** 格式化时间戳* param {number} timestamp 时间戳* param {string} format 格式* returns {string}*/ export const formatTimeStamp (timestamp: number, format: string) > {if (!timesta…

Mongodb中的基本地理信息元素

学习mongodb&#xff0c;体会mongodb的每一个使用细节&#xff0c;欢迎阅读威赞的文章。这是威赞发布的第77篇mongodb技术文章&#xff0c;欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题&#xff0c;欢迎在文章下面点个赞&#xff0c;或者关…

Python 实现试卷下载器:从零开始构建 GUI 应用

在本文中&#xff0c;我们将介绍如何使用 Python 构建一个简单的试卷下载器。该应用程序可以从指定的网站下载试卷&#xff0c;并通过一个图形用户界面&#xff08;GUI&#xff09;来进行交互。我们将使用 requests 库进行网络请求&#xff0c;使用 BeautifulSoup 解析 HTML&am…

C语言使用正则表达式

C语言使用正则表达式 1. 导入头文件2. 编译正则表达式3. 执行正则表达式4. 释放正则表达式完整示例说明 在C语言中&#xff0c;可以使用POSIX正则表达式库来匹配正则表达式。POSIX正则表达式库提供了标准的正则表达式处理函数&#xff0c;例如 regcomp, regexec, 和 regfree…

iso21434认证的意义

ISO 21434认证对于汽车行业具有深远的意义&#xff0c;主要体现在以下几个方面&#xff1a; 确保汽车网络安全&#xff1a;ISO 21434认证旨在确保汽车在设计和制造过程中能够抵御潜在的网络威胁和攻击。通过遵循该标准&#xff0c;汽车制造商能够开发出具备可靠网络安全能力的…

Linux系统防火墙iptables(下)

备份与还原iptables规则设置 1、yum -y install iptables iptables-services 安装iptables软件包 2、systemctl start iptables.service 开启服务 3、systemctl enable iptables.service 开机自启 我们对iptables命令行中的设置&#xff0c;都是临时设置&#xff0c;只要遇到服…

GPT-5

欢迎来到 Papicatch的博客 文章目录 &#x1f349;技术突破预测 &#x1f348;算法进步 &#x1f348;理解力提升 &#x1f348;行业推动力 &#x1f349;人机协作的未来 &#x1f348;辅助决策 &#x1f348;增强创造力 &#x1f348;复杂任务中的角色 &#x1f348;人…

深入剖析Tomcat(十三) Host、Engine 容器

前面很多篇文章都在介绍Context与Wrapper两个容器&#xff0c;因为这两个容器确实也比较重要&#xff0c;与我们日常开发也息息相关&#xff0c;但是Catalina是存在四个容器的&#xff0c;这一章就来简单看看Host与Engine这两个容器。 再次展示下Catalina的容器结构&#xff0…

VS2022(Visual Studio 2022)最新安装教程

1、下载 1、下载地址 - 官网地址&#xff1a;下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux - 根据自己的电脑的 【操作系统】 灵活选择。 2、安装包 【此处为Windows系统安装包】 2、安装 1、打开软件 - 右击【以管理员身份打开】&#xff0c; 2、准备配置 …

Web Serial串口通信实现WEB浏览器读写M1卡

本示例使用的设备&#xff1a;RS232串口RFID NFC IC卡读写器可二次开发编程发卡器USB转COM-淘宝网 (taobao.com) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> &l…

前端面试题-token的存放位置

哈喽小伙伴们大家好,本系列是一个专门针对前端开发岗的面试题系列,每周将会不定期分享一些面试题,希望对大家有所帮助. 面试官:token 一般在客户端存在哪儿 求职者:Token一般在客户端存在以下几个地方&#xff1a; (1)Cookie&#xff1a;Token可以存储在客户端的Cookie中。服…

61.应交税费的明细科目-待转销项税额

目录 1.变化 2.定义 3.科目设置的目的 4.会计处理 5.会计分录 1.变化 财会2016年22号文--《增值税会计处理规定》中对于应交税费的会计处理有了重大变化&#xff0c;引入了“待转销项税额”这一二级明细科目来核算一般纳税人销售货物、加工修理修配劳务、服务、无形资产…

优思学院|工厂的部门架构管理与精益生产

工厂内有不同部门&#xff0c;各部门之间必须协调合作才能发挥整体功能。工厂最主要的部分是制造产品的现场&#xff0c;这里安装了生产工具&#xff0c;还有操作员进行加工或生产制造。 制造时使用的材料或零组件&#xff0c;需要对外采购。对于加工组装型的工厂&#xff0c;…

短视频利器 ffmpeg (1)

使用FFmpeg切片视频有多种好处&#xff0c;尤其是在处理流媒体内容和优化视频分发时。以下是一些主要优点&#xff1a; 提高流媒体性能&#xff1a; 1、快速启动&#xff1a; 切片允许客户端更快地开始播放视频&#xff0c;因为它不需要等待整个文件下载完毕。客户端可以请求…

基于Boost和平均电流控制方法的APFC电路设计

通过学习无线充电相关知识&#xff0c;为更快熟悉APFC工作原理&#xff0c;通过实验得以掌握 技术要求&#xff1a; 1&#xff09;输入电压&#xff1a;AC 85V&#xff5e;265V&#xff1b; 2&#xff09;输出电压&#xff1a;400V1%&#xff1b; 3&#xff09;输出额定电流…

AI推介-信息抽取(information extraction,IE)论文速览(arXiv方向):2024.04.15-2024.06.01

文章目录~ 1.GAMedX: Generative AI-based Medical Entity Data Extractor Using Large Language Models2.Retrieval Augmented Structured Generation: Business Document Information Extraction As Tool Use3.BioBERT-based Deep Learning and Merged ChemProt-DrugProt for…

音视频开发30 FFmpeg 视频编码- 流程以及重要API,H264编码原理说明,该章节使用h264编码说明

一.H264编码原理 1 视频为什么需要进行编码压缩 ◼ 一张为 720x480 的图像&#xff0c;用 YUV420P 的格式来表示&#xff0c;其大小为&#xff1a; 720*480*1.5 约等于 0.5MB 。 ◼ 如果是 25 帧&#xff0c; 10 分钟的数据量 0.5M*10*60*25 7500MB -> 7GB 多 ◼ …