Как управлять пользователями и ролями, используя коа-коа-паспорт с 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: ... });
});

Это основа системы авторизации на основе ролей, хотя и очень простой.

Другие вопросы по тегам