javascript - 从电子电子邮件中打开密码重置链接
问题描述
嗨,我有一个用 React 构建的 Electron 应用程序。我的密码重置令牌链接通过电子邮件发送,然后该链接打开浏览器以重置用户密码。如果可能的话,我希望在电子应用程序中打开该电子邮件链接。不幸的是,我还没有发现任何有用的东西,我什至不知道从哪里开始。任何信息将不胜感激。
如果有帮助,这是我向用户电子邮件发送令牌链接的功能
app.post('/forgotPassword', async function(req, res){
const name = req.body.name;
const mail = req.body.email;
crypto.randomBytes(32, (err, buffer)=>{
if(err){
console.log(err)
}
console.log(buffer)
const token = buffer.toString("hex")
console.log(token)
User.findOne({userName: name, email: mail})
.then(user =>{
if(!user){
return res.json({
status: 404,
message: "No user found with Entered User name and email"
})
}
user.resetToken = token
user.expireToken = Date.now() + 1800000
user.save().then((result)=>{
transporter.sendMail({
from: process.env.EMAIL,
to: mail,
subject: "Password Reset",
html: `
<p>Your requested password reset</p>
<h5>Click on this <a href="http://localhost:3000/${token}">link<a/> to reset password</h5>
`
})
res.json({
status: 200,
message: "Password Reset email Sent please check your inbox"
})
})
})
})
})
总之:我希望用户密码重置链接(通过电子邮件发送)在电子而不是浏览器中打开
提前致谢 :)
解决方案
由于您需要来自用户邮件客户端(浏览器、Outlook 等)的链接来打开您的电子应用程序,因此您已在操作系统级别将您的应用程序注册为“该类型链接的打开器”。
您可能需要为类似myapp://password-reset-link
或类似的东西定义一个自定义协议(因为您不希望所有 http 链接都用您的电子应用程序打开)。
我自己还没有这样做,但我认为这个链接看起来很有希望https://glebbahmutov.com/blog/electron-app-with-custom-protocol/
推荐阅读
- php - 尽管 Laravel 版本符合包要求,为什么我不能安装包?
- javascript - 点击时展开和折叠 TR 标签 - 文件夹树结构
- google-cloud-platform - 我的云服务器上的数百次点击
- python - 如何在逐行附加到python数据帧时跳过/忽略行的空字段?
- javascript - moment js 两个 datetimepicker 时间比较
- wcf - IIS 上托管的 WCF - 如何获取同一应用程序池下各个服务的 CPU 和内存利用率
- javascript - 在 React 有状态组件中调用 setInterval 方法时日期对象未更新
- html - 使用 css 位置绝对偏移量在菜单中隐藏子导航有什么缺点吗?
- python - 匹配两个长度不相等的列表并将匹配项附加到新列表
- python - Python,如何将此公式应用于数据库中的每一行,以便每一行给出不同的值而不是每年的相同值