如何在node.js中显示仅管理员链接?

时间:2016-01-18 03:29:25

标签: javascript node.js user-interface

对不起,如果这是一个菜鸟问题,但是在这里:

我希望管理员(登录网站时)查看非管理员登录时无法查看的链接。我甚至不确定如何开始使用。我知道我必须在routes.js文件中添加两个单独的路由。但不确定如何在UI中显示或者我是否正确。

这个回购似乎与我的问题有点相关。 https://github.com/angular-ui/ui-router#get-started

由于

2 个答案:

答案 0 :(得分:4)

因此,创建管理页面的最佳方法(使用角度)是在快递或节点内限制它们的API。

幸运的是,有一个包Passport一个节点模块,它不仅可以进行常规登录,还可以进行谷歌,脸书和其他许多人。

我会看一下中间件示例然后在你的路线中你可以做一些简单的事情:

app.get('/admin', isAdmin ,function(req,res){
    res.send('Secret Admin Things')
});

其中isadmin将处理检查他们是否是一个管理员! Amazing tutorial for this

答案 1 :(得分:1)

我参与了一个没有使用护照的项目,这就是他们所做的事情

在后端

    $(document).ready(function() {
    var maxrow = 10;
    var addButton = $('.addbutton');
    var wrapper = $('tbody'); //Input field wrapper
    var field = '<tr><td><input type="text" name="names" value="2" /></td><td><a href="javascript:void(0);" class="removebutton" >Remove</a></td></tr>';
    var y = 1;
    $(addButton).click(function() {
        if (y < maxrow) {
            y++;
            $(wrapper).append(field);
        }
    });

});

然后在前端

HTML:

res.locals = {
    auth: req.session.auth,
  }

  res.render('index');

JavaScript:

 <span id="admin"> </span>

然后为了确保某人无法查看代码以找到链接并转到它,您当然可以保护后端

 if('{{auth}}' == admin){
    menu = "<a href='/admin/users'> Admin: Users </a>"
    $('#admin').append(menu)
 }

如果您使用并知道角度和护照,其他答案都很棒。但是,并不是每个人都使用相同的库,所以如果你只使用express和JQuery这个选项可以帮助你入门。对于你想要做的安全检查等,代码还有很多,但这是基本的方法