首页 > 解决方案 > 根据当前订阅者的订阅隐藏/显示 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>

但是有没有更好的方法来做到这一点,更安全和可扩展?

标签: javascriptnode.js

解决方案


我想说在 node.js 端做一些检查他们的会话变量(我假设你让他们在某个时候登录,因此服务器为他们保留会话变量)并显示适当的部分。由于他们无法更改服务器上的会话变量(全部由您设置且他们无法访问),因此应该“合理”安全。

然后,您的 node.js 应用程序只会通过每次检查变量来提供用户被授权的部分。


推荐阅读