Как управлять пользователями и ролями, используя коа-коа-паспорт с rethinkdb
Я новичок в Коа. Я хочу реализовать простую панель администратора с пользователями и ролями. есть ли пакет для управления ролями с помощью koa и переосмысления БД. я использую паспорт коа для базовой аутентификации.
1 ответ
Вы не предоставили много информации, но я постараюсь помочь вам начать.
Паспорт только для аутентификации ака логин / выход.
Похоже, вам нужна система авторизации (система, которая определяет, что пользователю разрешено делать, например, разрешено ли ему просматривать панель администратора). Эта система не должна касаться вашей системы аутентификации.
Самое простое решение - добавить role
поле для вашей таблицы пользователей, которая всегда установлена в "ADMIN"
, "MEMBER"
(по умолчанию) или "BANNED"
,
Используя Passport, если пользователь вошел в систему, прикрепите его к запросу:
if (user) {
req.user = user;
}
Теперь в ваших маршрутах вы можете просто проверить user.role
чтобы осуществить проверку авторизации:
app.get('/admin', function(req, res) {
// Send a 403 Forbidden error if the user is not an ADMIN
if (!req.user || req.user.role !== 'ADMIN') {
return res.status(403).send('Unauthorized');
}
res.render('admin.html', { data: ... });
});
Это основа системы авторизации на основе ролей, хотя и очень простой.