第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

使用 NodeJs/Knex/Nodemailer 的忘記密碼功能無(wú)法正常工作

使用 NodeJs/Knex/Nodemailer 的忘記密碼功能無(wú)法正常工作

Smart貓小萌 2023-03-18 16:25:10
注意:這是我第一次發(fā)帖,如果您有任何意見,請(qǐng)告訴我目標(biāo):我正在構(gòu)建一些端點(diǎn),讓用戶在忘記密碼時(shí)重設(shè)密碼。流程看起來(lái)像這樣:用戶不知道密碼,所以他們點(diǎn)擊忘記密碼。用戶輸入電子郵件并點(diǎn)擊發(fā)送用戶收到帶有重置密碼鏈接的電子郵件。單擊鏈接并被重定向以輸入他們的新密碼。他們點(diǎn)擊“保存”,他們被重定向到登錄以使用他們的新密碼登錄我正在使用 Insomnia 來(lái)達(dá)到測(cè)試的終點(diǎn)。正在工作的事情:當(dāng)提供電子郵件以重置密碼時(shí),Nodemailer 會(huì)發(fā)送一封電子郵件。更新密碼時(shí),它會(huì)顯示“密碼已更新”并給出 200 狀態(tài)。錯(cuò)誤:嘗試使用該新密碼登錄后,它不會(huì)保存到數(shù)據(jù)庫(kù)中。只有舊密碼才能讓您重新登錄。我嘗試過的事情:我嘗試更改我的 user.model 以使用我的 findByEmail 函數(shù)并遇到了一些奇怪的錯(cuò)誤,這讓我陷入了困境。我嘗試了控制臺(tái)日志記錄很多事情,看看我是否可以追蹤路徑。我嘗試更改 user.update 函數(shù),但無(wú)法使其正常工作。這是我的代碼: 任何指導(dǎo)將不勝感激。如果您需要查看任何其他文件,請(qǐng)告訴我。忘記密碼.jsconst router = require('express').Router();const crypto = require('crypto')const User = require('../models/users.model')const nodemailer = require('nodemailer')router.post('/forgotpassword', (req, res) => {  let {    email  } = req.body  console.log(req.body)  // if (req.body.email === '') {  //   res.status(400).json({ message: 'Email is required'})  // } console.error(req.body.email)  User.findBy({      email    })    .first()    .then(user => {      if (user === null) {        res.status(403).json({          message: 'Email not in db'        })      } else {        const token = crypto.randomBytes(20).toString('hex')        User.update({          resetPasswordToken: token,          resetPasswordExpires: Date.now() + 3600000,        })         const transporter = nodemailer.createTransport({          service: 'gmail',          auth: {            user: `${process.env.EMAIL_USER}`,            pass: `${process.env.EMAIL_PASS}`          }        })
查看完整描述

1 回答

?
浮云間

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個(gè)贊

你的User.update()線路沒有運(yùn)行(你要么需要將他們的承諾返回到承諾鏈中,要么掛鉤到他們的回調(diào)中)。async/await是你的朋友在這里避免“回調(diào)地獄”。


const user = await User.find({

  where: {

    username: req.body.username,

    resetPasswordToken: req.body.resetPasswordToken,

    resetPasswordExpires: Date.now() + 3600000,

  }

})

if (!user) { /* ... */ }

const token = crypto.randomBytes(20).toString('hex')

await User.update({ // await here!

  resetPasswordToken: token,

  resetPasswordExpires: Date.now() + 3600000,

})


查看完整回答
反對(duì) 回復(fù) 2023-03-18
  • 1 回答
  • 0 關(guān)注
  • 139 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)