如何使用koa koa-passport和rethinkdb管理用户和角色

时间:2016-02-04 12:24:30

标签: koa koa-passport

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

1 个答案:

答案 0 :(得分:2)

您还没有提供太多信息,但我会尝试帮助您开始使用。

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

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