我如何使用电子邮件 API 从后端 App中发送密码 重置电子邮件 ?

2026年8月17日4 次浏览来源:Dev.to阅读原文

使用通知作为电子邮件API, 无论你选哪个提供者,这个形状都是一样的——生成一个令牌,发送一个链接,在提交时验证它——所以,无论你使用什么方法,这大多数都适用;我会标出具体用来通知的部分.

Flow, End to End 用户请求重新设置密码 您的后端生成一个安全而短命的重置令牌 您的后端存储了该符号的散列版本 您的后端发送了带有重置链接的电子邮件, 通过电子邮件 API 用户点击链接并提交新的密码 您的后端 验证了该符号,更新了密码, 并宣布该符号无效 Step 1: 生成重置token 使用加密安全随机值, 而不是任何可猜到的值, 在您的数据库中仅存储一个散列版本 —— 如果您的数据库有漏出, 原始的符号不会同时被曝光 : 给它一个短的过期—— 15到60分钟是典型的.

步骤2: 构建重置 URL 指使在链接中进行,用户点击;散列是您稍后存储并检查的.

第3步:发送电子邮件 这是通知专用部分。

没有SDK可以安装——它是一个单个HTTP请求,在头部有你的API密钥: 如果您想要自动捕捉回弹——说地址在注册时被打错了——注册一次网页点击,而您的应用程序在没有支持票的情况下发现: 如果您想要完整的请求/ 回复形状和事件列表, 请在数分钟内完成 。

步骤4:在重置时验证托肯 这一部分完全是您的应用程序逻辑, 而不是电子邮件提供者的担心 : 安全实践值得遵循, 无论提供者使用 HTTPS 在这个流程的任何地方 只存储散列符,绝不使用原始值 比率限制 重置请求以防止被滥用 不要在成功重置后显示您的系统中是否存在电子邮件地址 无效 使用 bcrypt 或 Argon2 为新的密码散列 —— 永远不要在纯文本中存储它 —— 永远不要将用户的实际密码放入电子邮件中 —— 只有重置链接或一次性代码 Why I used Notify Here 上面基于电子邮件 API 发送信件的更改 —— 没有任何符号逻辑是将这两个关切分开的.

不同之处在于需要什么才能得到这个调用: 与Notify一样,这是一个经过验证的域名和API密钥,没有SDK可以安装,也没有模板系统可以学习,因为您正在直接构建HTML,和上面一样.

我发现自由阶梯 足以在决定值得付出代价之前 建立和测试整个流量 经常被问到的问题 我如何使用电子邮件 API 从后端应用程序发送密码重置邮件 ?

生成随机代币,以过期存储散列版本,通过通知等邮件API发送包含重置链接的邮件,并在用户提交新密码时验证代币.

通知这个部分是一个单一认证的HTTP请求——不需要SDK或模板系统.

我应该在重置邮件中发送实际密码吗?

不——只发送重设链接或一次性代码.

电子邮件本身绝不应包含用户的密码, 当前或新的密码 。

一个密码重置的符号应该保持多久有效? 15至60分钟是典型的.

更短更安全;只要确保足够长的时间,一个用户晚几分钟检查他们的电子邮件不会击中一个死链接.

我需要一个单独的图书馆来通过通知发送电子邮件吗?

不,通知没有SDK。

您在标题中用您的 API 密钥发送一个普通的 HTTP 请求, 它在 Node.js, Python, 或使用 HTTP 客户端的任何语言中都一样工作 。

我怎么知道密码重置的邮件是否无法传送?

在您的域名上注册一个订阅该事件的 Webhook, 通知会自动通知您的应用程序, 而不是用户必须报告 .

分享