javascript - 这样可以用角色验证用户吗?

标签 javascript node.js express passport.js

我不想使用额外的中间件,例如 connect-roles,那么这足以执行授权吗?

function authWithRole(role) {
    return (req, res, next) => {
        // Check login and role.
        if (req.isAuthenticated() &&
            _.indexOf(req.user.roles, role) > -1) {
            return next();
        } else {
            res.status(404).send('<h1>404 Not Found!</h1>');
        }
    }
}

router.all('/*', authWithRole("admin"));

有人可以提供一个更简单、更实用的授权示例吗?

最佳答案

是的。您可以通过这种方式进行授权。

这非常简单,无需使用任何额外的模块。

你应该重构:

router.all('/*', authWithRole("admin"));

至:

router.all('*', authWithRole("admin"));

关于javascript - 这样可以用角色验证用户吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35045974/

相关文章:

javascript - 如果我想在 .then() 触发后做某事,可以在 JavaScript 中使用 Promise

node.js - 使用 RoboMongo 生成新的 ObjectId

node.js - 使用 NodeJS (wo Angular) 进行 SEO 怎么样?

angularjs - Angular 配置中的 $http 请求 - 这可能吗?

javascript - node.js 中 require ('.' ) 的用途是什么

node.js - 获取oauth信息后如何将数据发送回客户端

javascript - 如何滚动 .list-group 将导航栏留在顶部

javascript - 元素在拖动后变得随机不可调整大小

javascript - 收缩箱

javascript - Jquery 代码在初始页面加载时选中复选框时显示链接