Я использую токен jwt с node.js npm jsonwebtoken
для управления аутентификацией моих пользователей. выше, я добавляю к полезной нагрузке пользовательские разрешения, которые содержат чтение и запись в какой раздел.
примерно так:
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 очень большим (иногда большим, чтобы его можно было даже отправить в заголовке). У меня есть промежуточное ПО, которое проверяет пользовательские разрешения на каждом маршруте, я пытаюсь избежать сохранения этих данных в базе данных, чтобы сохранить вызовы базы данных. как я могу избежать такой перегрузки.