nodejs中的管理员用户角色

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodejs中的管理员用户角色相关的知识,希望对你有一定的参考价值。

我的网络应用程序需要2个用户角色(用户和管理员)。我正在使用护照本地身份验证。

现在通过添加下面的代码我有2个角色,但管理员也可以访问用户路由。我必须手动到/ admin路由才能使用它的功能。

function isLoggedIn(req, res, next) {
if (req.isAuthenticated())
    return next();
res.redirect('/login');
}

function isAdmin(req, res, next) {
if (req.isAuthenticated()) {
    if (req.user.local.role == "admin") {
        return next();
    }
}
res.redirect('/login');
}

现在我的问题是如何更改isAdmin功能,以便当我以管理员身份登录时,我立即转到/ admin路由?

答案

expressjs中的用户角色和访问权限。如果您想首先创建角色,然后在自己的应用程序上创建权限后,我们必须定义第一个角色,然后添加这些角色的权限

var acl = require('acl');
var mongoose = require('mongoose');
var config = require('./config');

acl = new acl(new acl.mongodbBackend(mongoose.connection.db, config.db.aclCollectionPrefix), { debug: function(string) { console.log(string); } });

module.exports = {
    init: function() {
        acl.addRoleParents('superAdmin', 'admin');
        acl.addRoleParents('admin', 'user');
        acl.allow([
            {
                roles: ['admin'],
                allows: [
                    {
                        resources: '/user/list',
                        permissions: 'get'
                    }
                ]
            },
            {
                roles: ['superAdmin'],
                allows: [
                    {
                        resources: '/admin/list',
                        permissions: 'get'
                    }
                ]
            }
        ]);
    },

    getAcl: function() {
        return acl;
    }
};

这里是我的配置文件,它定义了我的mongo连接和acl前缀。在我们想要定义可能在这些路线上设置权限的路线之后。

这些行将添加到admin.js文件中

var acl = require('../authorization').getAcl();

// protected URLs
router.get('/list', acl.middleware(2, userController.getUserId), adminController.list.get);
另一答案

您无需更改“isAdmin”功能!使用这样的东西:

app.get('/admin-page', isAdmin, function(req, res) {
    res.render('admin', {         //'admin' is your admin template
        user : req.user 
       // or any other data you want to render! 
    });
});

以上是关于nodejs中的管理员用户角色的主要内容,如果未能解决你的问题,请参考以下文章

Oracle-常用数据库对象笔记(片段)

《java精品毕设》基于javaweb宠物领养平台管理系统(源码+毕设论文+sql):主要实现:个人中心,信息修改,填写领养信息,交流论坛,新闻,寄养信息,公告,宠物领养信息,我的寄养信息等(代码片段

授权、令牌和 nodejs

用户角色 - 添加角色功能 php 片段 - Wordpress

通过moodle中的用户ID获取用户角色

如何使用 MongoDB 和 Nodejs 创建用户角色/权限?