0

我是 koa 的新手。我想用用户和角色实现一个简单的管理面板。是否有任何软件包可用于使用 koa 和 rethink db 管理角色。我正在使用 koa-passport 进行基本身份验证。

4

1 回答 1

3

您没有提供太多信息,但我会尽力帮助您入门。

Passport 仅用于身份验证,即登录/注销。

听起来您想要一个授权系统(一个确定允许用户做什么的系统,例如是否允许他们查看管理面板)。该系统不需要接触您的身份验证系统。

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: ... });
});

这是基于角色的授权系统的基础,尽管非常基础。

于 2016-02-04T16:29:26.827 回答