node.js - 如何防止 JWT 令牌过载
问题描述
我将 jwt 令牌与 node.js npmjsonwebtoken
一起使用以管理我的用户身份验证。在此之上,我将用户权限添加到有效负载中,其中包含用户读取和写入哪个部分。
像这样:
const payload = {
user: {
id: user.id,
permissions: user.account_permissions
}
};
jwt.sign(
payload,
config.get('jwtSecret'),
{ expiresIn: TIME},
(err, token) => {
if (err) throw err;
res.json({ token });
}
);
该account_permissions
对象看起来像这样:
const permissions = {
platform: 'Management',
sections: [
{
sectionName: 'setup',
read: true,
write: true
},
{
sectionName: 'chat',
read: true,
write: true
},
{
sectionName: 'maintenence',
read: true,
write: true
},
{
sectionName: 'classes',
read: true,
write: true
},
{
sectionName: 'income',
read: true,
write: true
},
{
sectionName: 'announcements',
read: true,
write: true
},
{
sectionName: 'messages',
read: true,
write: true
}
],
school: shoolID
};
我的问题是;每个用户都可以拥有不同平台的许多权限对象,在这种情况下,这会使 jwt 令牌非常大(有时甚至会在标头中发送)。我有一个中间件检查每条路由中的用户权限,我试图避免将数据保存在数据库中以保存数据库调用。我怎样才能避免这种超载。
解决方案
推荐阅读
- python - 如何在python中记录一个类方法
- android - 如何以 10% 的增量更新进度条?
- spring - Spring boot 2:为每种语言映射 addResourceHandler 返回 404
- sql - 在 BigQuery 中按小时获取主页到网站上其他页面的计数和浏览量
- python - 从 .csv 文件计算所需的浮点迭代
- c# - 如何将 appsettings.json 文件添加到我的 Azure Function 3.0 配置?
- python - Python 和 UIO 设备:为什么 mmap.read() 工作而 os.read() 失败?
- c - 如何知道 C 中下一个可用的文件描述符?
- python - 为什么我的循环只在附加到大数据帧时一遍又一遍地附加最后一次迭代?
- python - 使用 Python 向 PDF 添加和删除水印