node.js - 为什么将电子邮件验证令牌/密码存储在数据库而不是数组中?NodeJs、Express、Typescript
问题描述
我正在构建一个注册和登录的应用程序,所以我需要在注册后验证电子邮件。创建用户后,我想在获取请求中发送带有 jwt 的激活邮件。成功确认电子邮件和令牌未过期后,用户已登录。
我的问题是为什么,我不应该将 jwt local 存储在数组中并在验证请求中检查令牌是否有效,然后将其从数组中删除并将用户注册状态设置为 true?
如果我将令牌存储在数据库中的某个表中并在成功验证后将其删除,我是否可以获得任何好处?还是我根本不应该删除它?
解决方案
const token = jwt.sign(
{
email: loadedUser.email,
userId: loadedUser._id.toString(),
},
"somesupersecretkey",
{ expiresIn: "1h" }
);
res.status(200).json({ token: token, userId: loadedUser._id.toString() });
无需将令牌存储在数据库中的某个表中,您也可以在验证成功后设置其超时...
推荐阅读
- python - 从python中的多行Excel工作表生成项目和子项目字段
- javascript - 为什么将 console.log() 放置在呈现视图的函数中时会重复打印一个变量?
- c# - 使用 JSON JavaScriptSerializer 在序列化或反序列化期间出现错误
- reactjs - React js CRUD - 添加数据时如何自动更新表而不刷新
- javascript - 在时间段之间获得整个三个月
- javascript - 无法在 jQuery / Ajax 中使用附加成功函数
- python - 捕获 Firebase 504 网关超时
- tcp - 如何使用fluent-bit转发输出插件向tcp端口发送数据
- prolog - Prolog中的图形着色问题:程序未终止
- vb.net - 如何在VB中打开和显示word文档?