NodeJS expo节点sendgrid:如何发送电子邮件重置密码并将用户附加到链接,以便在用户使用应用程序后检索?

zbwhf8kr  于 2023-05-12  发布在  Node.js
关注(0)|答案(1)|浏览(138)

我有一个Node / React Native项目。我想重置密码并向用户发送电子邮件。我给我的客户发了一个链接。当用户点击该链接时,他将被引导到屏幕,在那里他可以选择新密码。我确实需要得到一些用户ID或电子邮件或一些标识符,这样我就可以保存新密码。

sendResetPasswordLink: async (email, link) => {
  const sgMail = require('@sendgrid/mail');
  sgMail.setApiKey(process.env.SENDGRID_API_KEY);
  const link = "exp://192.168.2.30:19000/"
    const msg = {
      to: 'test@example.com',
      from: 'test@example.com', // Use the email address or domain you verified above
      subject: 'Sending with Twilio SendGrid is Fun',
      text: 'and easy to do anywhere, even with Node.js',
      html:  `<a href=${link}${email}>This is Link<a/>`,
    };
}

我的客户:

...
   const link = Linking.createURL('/ChangePassword');
   axios.post('/send_reset_password_link', {email, link})
...

如果我发送一个链接与路由到我的后端,那么我只能呈现的形式,从我的后端重置密码。有没有什么办法,我可以只是有一个形式对我的客户端,直接用户回到它,一旦他点击链接,但也通过/抓住然后用户(ID或电子邮件)?

jm81lzqq

jm81lzqq1#

你可以做一个OTP系统。然后用户输入他的电子邮件,他被重定向到另一个屏幕,在那里他可以输入一个代码,在此期间,您发送一个OTP到他的电子邮件。验证密码后,您可以进入更改密码屏幕。

相关问题