如何使用 koa koa-passport 和 rethinkdb 管理用户和角色
how to manage users and roles using koa koa-passport with rethinkdb
我是 koa 的新手。我想用用户和角色实现一个简单的管理面板。是否有任何包可用于管理 koa 和 rethink db 的角色。我正在使用 koa-passport 进行基本身份验证。
您提供的信息不多,但我会尽力帮助您入门。
护照仅用于身份验证 login/logout。
听起来你想要一个授权系统(一个确定允许用户做什么的系统,比如是否允许他们查看管理面板)。此系统不需要接触您的身份验证系统。
最简单的解决方案是向您的用户 table 添加一个 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: ... });
});
这是基于角色的授权系统的基础,虽然非常基础。
我是 koa 的新手。我想用用户和角色实现一个简单的管理面板。是否有任何包可用于管理 koa 和 rethink db 的角色。我正在使用 koa-passport 进行基本身份验证。
您提供的信息不多,但我会尽力帮助您入门。
护照仅用于身份验证 login/logout。
听起来你想要一个授权系统(一个确定允许用户做什么的系统,比如是否允许他们查看管理面板)。此系统不需要接触您的身份验证系统。
最简单的解决方案是向您的用户 table 添加一个 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: ... });
});
这是基于角色的授权系统的基础,虽然非常基础。