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

How do I show admin-only links in node.js?

本文关键字:管理员 链接 显示 node js      更新时间:2023-09-26

对不起,如果这是一个新手问题,但它在这里:

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

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

谢谢

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

幸运的是,有一个套餐!Passport是一个节点模块,不仅可以进行常规登录,还可以进行Google,Facebook和许多其他登录。

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

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

isadmin将在哪里一次性检查他们是否是管理员!为此提供了惊人的教程。

我从事的项目没有使用护照,这就是他们所做的

在后端

res.locals = {
    auth: req.session.auth,
  }
  res.render('index');

然后在前端

.HTML:

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

JavaScript:

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

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

if (req.session.auth !== 'admin') { //
  res.redirect('/');
}

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