是否可以在NodeJS的token对象中存储很多变量

nbnkbykc  于 2022-11-03  发布在  Node.js
关注(0)|答案(1)|浏览(171)

嘿,我正在使用NodeJS expressJS mongoDB / React native实现身份验证,在令牌对象中有很多变量可以吗?

const token = jwt.sign(
          {
            userId: user._id,
            isAdmin: user.isAdmin,
            isBanned:user.banned.isBanned
          },
          process.env.TOKEN_KEY,
          {
            expiresIn: "24H",
          }
        );

我添加了isBanned,这样当令牌进入前端时,我可以直接检查它,这样我就不必再次获取用户数据来获得它!这是检查用户是否被禁止的最佳方法吗?最后,在令牌上放置多达3个变量是否合适

bakd9h0s

bakd9h0s1#

出于安全原因,将用户数据存储在JSON Web令牌中是不安全的。
通常,您应该只存储识别用户所需的最少数据,即ID。
如果可能,您还应该使用不可预测的ID,因为数字ID是可预测的。
最好是有一个字母数字的唯一ID。
如果你需要得到一些额外的信息一旦你的用户登录,你可以很容易地发出一个请求,以您的API检索信息...
不要忘记,令牌是在成功登录后由服务器提供给客户端,以避免在每次请求时对用户进行身份验证,而不是用于检索信息。

相关问题