【问题标题】:Pass variable from server-side controller to client-side to use in client-side JavaScript将变量从服务器端控制器传递到客户端以在客户端 JavaScript 中使用
【发布时间】:2018-05-04 10:21:05
【问题描述】:

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

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

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

您将如何处理用户权限?

【问题讨论】:

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


    【解决方案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
    

    【讨论】:

    • 我正在使用 Pug,很高兴您提出了安全问题。我使用哈巴狗的方式与您演示的方式大致相同,但实际上阅读您所说的内容已经给了我所需的答案。我将在服务器端处理权限。很明显,但谢谢!
    猜你喜欢
    • 2011-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多