令牌?"/>
JWT 使用和销毁令牌?
问题是因为令牌是无状态的,我不想将其状态存储在数据库中。 所以,上下文相当简单。我用 jsonwebtoken(JWT) 签署了一个令牌,并专门通过电子邮件将其发送给用户。问题是我在 URL 中包含了令牌并在电子邮件中提供了它,当该用户点击链接时,服务器将验证签名令牌并在验证成功时:服务器将更新数据库,但如果失败,用户将收到通知。所以,问题是我不想每次请求 url 时都执行数据库操作,为了这样做,我需要使令牌在使用一次时无效。
我可以在数据库中保存令牌状态,但不想这样做。我签署了令牌以便在短时间内过期,但这不是一个很好的解决方案。有没有其他方法可以解决这个问题?下面提供了我当前上下文的代码:
代币符号:
exports.sing = async (email) => {
const payload = {
email,
};
const secretKey = "MY SECRET WAS HERE";
const token = jwt.sign(payload, secretKey, { expiresIn: 15 * 60 });
console.log("JWT token:", token);
return token;
};
发送邮件
const link = "http://localhost:80/client/verify?token=" + token;
const mailOptions = {
from: `ToniTask <[email protected]>`,
to: rcv_mail,
subject: "Test Email",
html: `<h1>This is a test email.</h1>Verify your email:<a href="${link}">${link}</a><br><em>This link will expire in 10 Mins</em>`,
};
const info = await transporter.sendMail(mailOptions);
回答如下:
更多推荐
JWT 使用和销毁令牌?
发布评论