javascript - 根据当前订阅者的订阅隐藏/显示 HTML 元素的最佳实践?
问题描述
我只是在寻找关于根据用户的订阅状态隐藏/显示 HTML 元素的最佳实践建议。我知道客户端 Javascript 可以完成这项工作,但我不确定这是否是最佳实践。
简而言之,我正在开发一个基于 Node.js 并具有纯 HTML 前端的 Heroku 应用程序。这个 Heroku 应用程序最终将能够在订阅/层级购买/使用。因此,如果用户订阅了“Tier 1”包,例如,我希望能够从 HTML 表单中隐藏他们没有“付费”的某些元素。我知道我可以通过 Javascript 做到这一点,但有没有更好、更安全的方法来完成隐藏/显示某些元素?
示例:这是我想要隐藏的片段:
<div id="actionSection">
<div class="slds-form-element slds-form-element_stacked">
<label class="slds-form-element__label" for="stacked-input-id-01">Action Button 1</label>
<div class="slds-form-element__control">
<input type="text" id="action1" placeholder="Action Name" class="slds-input" />
</div>
</div>
<div class="slds-form-element slds-form-element_stacked">
<label class="slds-form-element__label" for="stacked-input-id-01">Action Button 2</label>
<div class="slds-form-element__control">
<input type="text" id="action2" placeholder="Action Name" class="slds-input" />
</div>
</div>
</div>
显然,我可以这样做:
<script type="text/javascript">
document.getElementById("actionSection").style.visibility = "hidden";
</script>
但是有没有更好的方法来做到这一点,更安全和可扩展?
解决方案
我想说在 node.js 端做一些检查他们的会话变量(我假设你让他们在某个时候登录,因此服务器为他们保留会话变量)并显示适当的部分。由于他们无法更改服务器上的会话变量(全部由您设置且他们无法访问),因此应该“合理”安全。
然后,您的 node.js 应用程序只会通过每次检查变量来提供用户被授权的部分。
推荐阅读
- javascript - 每次重新渲染时,ReactJS 输入组件都会从 API 重新获取数据
- clickhouse - 在 ClickHouse 中的特定索引处设置数组值
- python - 使用 python 写入 .ply 文件
- python - 计算复利时的无限循环
- java - Canvas Paint 方法不适用于 JLayeredPane
- mysql - nodejs Mysql sum() 将 json 作为函数返回?请检查以了解我
- boost - 在 ubuntu16.04 上构建 Openpose 时出现 Boost 错误
- ios - XCode 项目中的 Adobe 字体
- python - “用户”对象没有属性“添加角色”
- javascript - 默认情况下,如何在单击多个内容项时隐藏然后显示?