我想知道如何控制/限制不同用户对存储在mongodb中的内容的访问(通过mongoose访问)。假设有一个数据模型可以存储用户的最后遗嘱。
我的方法是:
这是否合理甚至保存?无法找到任何最佳实践,所有示例基本上都以身份验证结束。
答案 0 :(得分:2)
使用这三种方法中的任何一种都可以实现授权,IMO我选择的选项是使用中间件。
这将是一个更清洁的选择,对代码几乎没有影响 功能和易于维护,以便将来的变化,也分开 认证和授权的概念。
我从未使用过,但请记住在我必须制作的项目中使用this package。您可以定义规则,然后在特定路线上使用它。
app.get('/', *user.can('access home page'), function (req, res) {
res.render('private');
});
app.get('/private', *user.can('access private page'), function (req, res) {
res.render('private');
});
app.get('/admin', *user.can('access admin page'), function (req, res) {
res.render('admin');
});
*预定义规则
答案 1 :(得分:2)
使用passport-local
可以涵盖步骤1和2,尽管手动实施并不困难。
第3步是合理的,因为遗嘱属于用户,并且需要willId
和userId
来确定该用户是否应该有权访问特定的遗嘱文件。
由于安全性基于会话ID,因此您显然应使用HTTPS并使用httpOnly
和secure
session cookies。