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