将变量从服务器端控制器传递到客户端以在客户端JavaScript中使用

时间:2017-11-21 03:48:54

标签: javascript node.js mongodb express user-permissions

我想要实现的目标: 我有一个模型存储列表的所有者和已添加的成员。所有者和成员由对象表示。每个成员对象都包含一个权限字段 - 当成员添加到列表时,它们具有默认权限,由SUGGEST表示。列表的所有者可以稍后更改成员的权限。

我希望在用户通过路径访问列表页面时传递用户的权限。

我无法弄清楚: 我需要能够访问我的客户端JavaScript中的权限,因为我将使用权限来限制用户可以对他们拥有或属于的任何给定列表执行的操作。在我的客户端JavaScript中,我将设置一个用户权限变量,我在运行函数之前检查该变量以对列表进行更改。

您将如何处理用户权限?

1 个答案:

答案 0 :(得分:1)

您永远不应仅使用客户端javascript限制用户的访问权限,因为用户必须做的唯一事情就是编辑呈现的javascript文件。

您应该使用像Pug这样的模板库来仅向用户呈现允许的选项,甚至在此之后您应该对受限制的控制器进行后端检查。

示例:仅在用户登录时呈现配置文件链接。

// app.js
...
Router.get('/', (req, res, next) => {
  res.render('indexPage', {loggedIn: true});
});

// indexPage.pug
html
  head
    //- ... head stuff
    nav
      if(loggedIn)
        a.nav-item(href='/profile') Profile
      else
        a.nav-item(href='/signin') Sign In