将变量从服务器端控制器传递到客户端以在客户端使用 JavaScript
Pass variable from server-side controller to client-side to use in client-side JavaScript
我想要达到的目标:
我有一个模型,用于存储列表的所有者和已添加的成员。所有者和成员由对象表示。每个成员对象都包含一个权限字段 - 当一个成员被添加到列表中时,他们具有默认权限,由 SUGGEST 表示。列表的所有者可以稍后更改成员的权限。
我想在用户访问列表页面时通过路由传递用户的权限。
我想不通的是:
我需要能够访问我的客户端 JavaScript 中的权限,因为我将使用权限来限制用户在他们拥有或属于的任何给定列表上可以执行的操作。在我的客户端 JavaScript 中,我将设置一个用户权限变量,在我 运行 函数更改列表之前检查该变量。
你会如何处理用户权限?
您永远不应该仅使用客户端 javascript 来限制用户的访问,因为用户要克服您的限制唯一要做的就是编辑呈现的 javascript 文件。
您应该使用像 Pug 这样的模板库来只向用户呈现允许的选项,甚至在这之后您应该对受限控制器进行后端检查。
示例:仅在用户登录时呈现配置文件link。
// 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
我想要达到的目标: 我有一个模型,用于存储列表的所有者和已添加的成员。所有者和成员由对象表示。每个成员对象都包含一个权限字段 - 当一个成员被添加到列表中时,他们具有默认权限,由 SUGGEST 表示。列表的所有者可以稍后更改成员的权限。
我想在用户访问列表页面时通过路由传递用户的权限。
我想不通的是: 我需要能够访问我的客户端 JavaScript 中的权限,因为我将使用权限来限制用户在他们拥有或属于的任何给定列表上可以执行的操作。在我的客户端 JavaScript 中,我将设置一个用户权限变量,在我 运行 函数更改列表之前检查该变量。
你会如何处理用户权限?
您永远不应该仅使用客户端 javascript 来限制用户的访问,因为用户要克服您的限制唯一要做的就是编辑呈现的 javascript 文件。
您应该使用像 Pug 这样的模板库来只向用户呈现允许的选项,甚至在这之后您应该对受限控制器进行后端检查。
示例:仅在用户登录时呈现配置文件link。
// 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